This commit is contained in:
stt
2025-10-11 15:21:30 +08:00
4 changed files with 33 additions and 55 deletions

View File

@@ -1,52 +1,32 @@
<template> <template>
<div class="default-main"> <div class="default-main">
<div v-show="flg"> <div v-show="flg">
<TableHeader datePicker showExport :showReset="false" ref="TableHeaderRef"> <TableHeader datePicker showExport ref="TableHeaderRef">
<template v-slot:select> <template v-slot:select>
<el-form :inline="true" label-width="90px" class=""> <el-form :inline="true" label-width="90px" class="">
<el-form-item label="用户名:"> <el-form-item label="用户名:">
<el-select <el-select v-model="tableStore.table.params.loginName" placeholder="用户名" clearable
v-model="tableStore.table.params.loginName" filterable>
placeholder="用户名" <el-option v-for="item in userName" :key="item.id" :label="item.loginName"
clearable :value="item.loginName"></el-option>
filterable
>
<el-option
v-for="item in userName"
:key="item.id"
:label="item.loginName"
:value="item.loginName"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="事件类型:"> <el-form-item label="事件类型:">
<el-select v-model="tableStore.table.params.type" placeholder="事件类型" clearable> <el-select v-model="tableStore.table.params.type" placeholder="事件类型" clearable>
<el-option <el-option v-for="item in eventType" :key="item.id" :label="item.label"
v-for="item in eventType" :value="item.id"></el-option>
:key="item.id"
:label="item.label"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="操作类型:"> <el-form-item label="操作类型:">
<el-select v-model="tableStore.table.params.operateType" placeholder="操作类型" clearable> <el-select v-model="tableStore.table.params.operateType" placeholder="操作类型" clearable>
<el-option <el-option v-for="item in operationType" :key="item.value" :label="item.value"
v-for="item in operationType" :value="item.value"></el-option>
:key="item.value"
:label="item.value"
:value="item.value"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="操作结果:"> <el-form-item label="操作结果:">
<el-select v-model="tableStore.table.params.result" placeholder="操作结果" clearable> <el-select v-model="tableStore.table.params.result" placeholder="操作结果" clearable>
<el-option <el-option v-for="item in resultList" :key="item.id" :label="item.label"
v-for="item in resultList" :value="item.id"></el-option>
:key="item.id"
:label="item.label"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
@@ -56,7 +36,7 @@
<el-button type="primary" @click="details">统计</el-button> <el-button type="primary" @click="details">统计</el-button>
</template> </template>
</TableHeader> </TableHeader>
<Table ref="tableRef" @sort-change="handleSortChange" /> <Table ref="tableRef" />
</div> </div>
<div v-if="!flg"> <div v-if="!flg">
<Statistics @back="onSubmit" ref="statistics" /> <Statistics @back="onSubmit" ref="statistics" />
@@ -126,7 +106,7 @@ import { ElMessage } from 'element-plus'
import Statistics from './statistics.vue' import Statistics from './statistics.vue'
defineOptions({ defineOptions({
name: 'admin/BusinessAdministrator/Audit/Operations/Management' name: 'BusinessAdministrator/Audit/Operations/Management'
}) })
interface UserInfo { interface UserInfo {
@@ -178,7 +158,12 @@ const tableStore: any = new TableStore({
url: '/system-boot/audit/getAuditLog', url: '/system-boot/audit/getAuditLog',
method: 'POST', method: 'POST',
column: [ column: [
{ field: 'time', title: '操作时间', sortable: true }, {
field: 'create_time', title: '操作时间', sortable: true,
formatter: (row: any) => {
return row.row.time
}
},
{ field: 'userName', title: '操作人员' }, { field: 'userName', title: '操作人员' },
{ field: 'operate', title: '操作类型', sortable: true }, { field: 'operate', title: '操作类型', sortable: true },
{ field: 'describe', title: '事件描述' }, { field: 'describe', title: '事件描述' },
@@ -186,7 +171,10 @@ const tableStore: any = new TableStore({
{ field: 'result', title: '操作结果', sortable: true }, { field: 'result', title: '操作结果', sortable: true },
{ field: 'ip', title: '操作IP' }, { field: 'ip', title: '操作IP' },
{ field: 'level', title: '事件等级', sortable: true } { field: 'level', title: '事件等级', sortable: true }
] ],
loadCallback: () => {
getLogSize()
}
}) })
tableStore.table.params.loginName = '' tableStore.table.params.loginName = ''
@@ -206,17 +194,7 @@ onMounted(() => {
onSubmit() onSubmit()
}) })
// 排序
const handleSortChange = ({ column, order }: { column: TableColumn; order: 'asc' | 'desc' | null }) => {
tableStore.table.params.sortName = column?.title
tableStore.table.params.sortBy =
column?.property == 'operate' ? 'operate_type' : column?.property == 'time' ? 'create_time' : column?.property
tableStore.table.params.orderBy = order
tableStore.table.params.pageNum = 1
// tableStore.index()
onSubmit()
}
//下拉框查询 //下拉框查询
const search = () => { const search = () => {
@@ -236,7 +214,7 @@ const details = () => {
const onSubmit = async () => { const onSubmit = async () => {
flg.value = true flg.value = true
await tableStore.index() await tableStore.index()
getLogSize()
} }
// 查询日志大小 // 查询日志大小
@@ -256,22 +234,22 @@ const getLogSize = () => {
} }
// 备份 // 备份
const backups = () => { const backups = async() => {
loading.value = true loading.value = true
logFileWriter({}).then(res => {}) await logFileWriter({}).then(res => { })
setTimeout(() => { setTimeout(() => {
ElMessage({ ElMessage({
type: 'success', type: 'success',
message: '文件备份成功' message: '文件备份成功'
}) })
loading.value = false loading.value = false
}, 50000) }, 0)
} }
// 恢复 // 恢复
const restore = () => { const restore = () => {
loading.value = true loading.value = true
recoverLogFile({}).then(res => {}) recoverLogFile({}).then(res => { })
setTimeout(() => { setTimeout(() => {
ElMessage({ ElMessage({
type: 'success', type: 'success',

View File

@@ -48,9 +48,9 @@ import TableHeader from '@/components/table/header/index.vue'
import { getAllUserList } from '@/api/auditManage/auditList' import { getAllUserList } from '@/api/auditManage/auditList'
import { Back } from '@element-plus/icons-vue' import { Back } from '@element-plus/icons-vue'
defineOptions({ // defineOptions({
name: 'admin/BusinessAdministrator/Audit/Operations/Management' // name: 'admin/BusinessAdministrator/Audit/Operations/Management'
}) // })
interface UserInfo { interface UserInfo {
id: number | string id: number | string

View File

@@ -1,6 +1,6 @@
<template> <template>
<div class="default-main"> <div class="default-main">
<TableHeader select :showReset="false" ref="TableHeaderRef"></TableHeader> <TableHeader select :showReset="false" showExport ref="TableHeaderRef"></TableHeader>
<Table ref="tableRef" /> <Table ref="tableRef" />
</div> </div>
</template> </template>

View File

@@ -1,6 +1,6 @@
<template> <template>
<div class="default-main"> <div class="default-main">
<TableHeader datePicker :showReset="false" ref="TableHeaderRef"> <TableHeader datePicker :showReset="false" showExport ref="TableHeaderRef">
<template v-slot:select> <template v-slot:select>
<el-form-item label="筛选数据"> <el-form-item label="筛选数据">
<el-input v-model="tableStore.table.params.loginName" placeholder="请输入"></el-input> <el-input v-model="tableStore.table.params.loginName" placeholder="请输入"></el-input>