Commit 455faec5 by wanglizhen

系统日志管理

parent 4d318b46
import request from '@/utils/request'
/**
* 系统日志管理 - 查询月份
* @param {*} data
* @returns
*/
export function query(data) {
return request({
url: '/system/logconfig/query',
method: 'post',
data: data
})
}
/**
* 系统日志管理 - 保留月份
* @param {*} data
* @returns
*/
export function save(data) {
return request({
url: '/system/logconfig/save',
method: 'post',
data: data
})
}
/**
* 系统日志管理 - 查询日志
* @param {*} data
* @returns
*/
export function querylog(data) {
return request({
url: '/system/logconfig/querylog',
method: 'post',
data: data
})
}
/**
* 系统日志管理 - 下载日志
* @param {*} data
* @returns
*/
export function download(data) {
return request({
url: '/system/logconfig/download',
method: 'post',
data: data,
responseType: 'blob'
})
}
...@@ -204,7 +204,6 @@ const getTableData = () => { ...@@ -204,7 +204,6 @@ const getTableData = () => {
// 导出excel // 导出excel
const exportExcelFunc = () => { const exportExcelFunc = () => {
exportExcel({ typecode: queryParams.value.typecode }).then(response => { exportExcel({ typecode: queryParams.value.typecode }).then(response => {
const { data } = response;
const blob = new Blob([response], { type: 'application/vnd.ms-excel,charset=utf-8' }); const blob = new Blob([response], { type: 'application/vnd.ms-excel,charset=utf-8' });
const link = document.createElement('a') const link = document.createElement('a')
link.href = URL.createObjectURL(blob) link.href = URL.createObjectURL(blob)
......
...@@ -13,16 +13,16 @@ const handelExecute = async () => { ...@@ -13,16 +13,16 @@ const handelExecute = async () => {
ElMessage.warning('请输入命令') ElMessage.warning('请输入命令')
return false return false
} }
const { flag } = await command({ command: enterValue.value }) const { flag, msg } = await command({ command: enterValue.value })
if (flag) { if (flag) {
IntervalRequest() IntervalRequest()
} else { } else {
ElMessage.error('命令执行失败') ElMessage.error(msg)
} }
} }
const IntervalRequest = async () => { const IntervalRequest = async () => {
const { flag, data } = await commandlog({}) const { flag, data, msg } = await commandlog({})
if (flag) { if (flag) {
requestOptions.value = data requestOptions.value = data
timeRef.value = setTimeout(() => { timeRef.value = setTimeout(() => {
...@@ -30,7 +30,7 @@ const IntervalRequest = async () => { ...@@ -30,7 +30,7 @@ const IntervalRequest = async () => {
}, 5000) }, 5000)
} else { } else {
timeRef.value && clearTimeout(timeRef.value) timeRef.value && clearTimeout(timeRef.value)
ElMessage.error('获取命令执行结果失败') ElMessage.error(msg)
} }
} }
...@@ -47,7 +47,7 @@ onBeforeUnmount(() => { ...@@ -47,7 +47,7 @@ onBeforeUnmount(() => {
<div class="app-container__body"> <div class="app-container__body">
<el-form-item label="" prop=""> <el-form-item label="" prop="">
<div style="display: flex;width: 100%;"> <div style="display: flex;width: 100%;">
<el-input v-model="enterValue" placeholder="请输入请输入命令"></el-input> <el-input v-model="enterValue" placeholder="请输入命令"></el-input>
<el-button type="primary" style="width: 120px; margin-left: 10px;" @click="handelExecute()">执行</el-button> <el-button type="primary" style="width: 120px; margin-left: 10px;" @click="handelExecute()">执行</el-button>
</div> </div>
</el-form-item> </el-form-item>
......
<script setup name="SystemLogManage">
import { onMounted, ref, reactive } from 'vue'
import { ElMessage } from "element-plus";
import { query, save, querylog, download } from '@/api/systemConfig/systemLogManage.js'
const monthOptions = ref([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) // 保留月份
const keepMonth = ref('') // 月份值
const queryData = reactive({
count: '',
date: ''
}) // 查询条件
const resultStr = ref('') // 日志值
// 查询月份
const handelQuery = async () => {
const { flag, data, msg } = await query({})
if (flag) {
keepMonth.value = data
} else {
ElMessage.error(msg)
}
}
// 保存月份
const handelSave = async () => {
if (!keepMonth.value) {
ElMessage.warning('保留月份不能为空!')
return false
}
const { flag, msg } = await save({ reservemonth: keepMonth.value })
if (flag) {
ElMessage.success('保存成功')
} else {
ElMessage.error(msg)
}
}
// 查询日志
const querylogFunc = async () => {
if (!queryData.date) {
ElMessage.warning('请选择日志日期!')
return false
}
if (!queryData.count) {
ElMessage.warning('请填写查询条数!')
return false
}
const dataObj = {
count: Number(queryData.count),
date: queryData.date
}
const { flag, data, msg } = await querylog(dataObj)
if (flag) {
resultStr.value = data
ElMessage.success('查询成功')
} else {
ElMessage.error(msg)
}
}
// 下载日志
const downloadFunc = async () => {
if (!queryData.date) {
ElMessage.warning('请选择日志日期!')
return false
}
const response = await download({ date: queryData.date })
const blob = new Blob([response]);
const link = document.createElement('a')
link.href = URL.createObjectURL(blob)
link.download = `系统日志${queryData.date}.log`
link.click()
URL.revokeObjectURL(link.href)
ElMessage.success('下载成功')
}
onMounted(() => {
handelQuery()
})
</script>
<template>
<div class="app-container scroller">
<PageTitle>
<template #title>系统控制台</template>
</PageTitle>
<div class="app-container__body">
<div class="formBox">
<el-form-item label="保留月份" prop="">
<div style="display: flex;">
<el-select v-model="keepMonth" placeholder="请选择">
<el-option v-for="item in monthOptions" :key="item" :label="item" :value="item">
</el-option>
</el-select>
<el-button type="primary" style="width: 120px; margin-left: 10px;" @click="handelSave()">保存</el-button>
</div>
</el-form-item>
<el-form-item label="日志日期" prop="">
<div style="width: 100%;justify-content: space-between;display: flex;">
<div style="display: flex;">
<el-date-picker v-model="queryData.date" type="date" placeholder="请选择日志日期"
value-format="YYYY-MM-DD"></el-date-picker>
<div style="display: flex;align-items: center;margin-left: 30px;">
<span></span>
<el-input v-model="queryData.count" style="width: 80px;margin: 0px 6px;"></el-input>
<span></span>
</div>
</div>
<div>
<el-button type="primary" @click="querylogFunc()">查询</el-button>
<el-button type="primary" style="margin-left: 10px;" @click="downloadFunc()">下载</el-button>
</div>
</div>
</el-form-item>
<el-input type="textarea" v-model="resultStr" rows="20" placeholder="" readonly></el-input>
</div>
</div>
</div>
</template>
<style lang="scss" scoped>
.app-container__body {
:deep(.el-input__wrapper) {
background: #f3f5fa;
}
:deep(.el-select__wrapper) {
background: #f3f5fa;
}
:deep(.el-textarea__inner) {
background: #f3f5fa;
}
.formBox {
width: 800px;
margin: 0px auto;
}
}
</style>
\ No newline at end of file
++ "b/src/views/systemConfig/SystemLogManage/\347\263\273\347\273\237\346\227\245\345\277\227\347\256\241\347\220\206.md"
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论