edu/admin/src/views/setting/system/journal.vue

150 lines
4.7 KiB
Vue
Raw Normal View History

2022-04-12 02:33:06 +00:00
<!-- 系统日志 -->
<template>
<div class="journal">
2022-08-12 10:44:09 +00:00
<el-card class="!border-none" shadow="never">
<el-form class="ls-form" :model="formData" inline>
2022-04-12 02:33:06 +00:00
<el-form-item label="管理员">
2022-09-21 08:44:00 +00:00
<el-input
2022-09-29 02:26:49 +00:00
class="w-[280px]"
2022-09-21 08:44:00 +00:00
placeholder="请输入"
v-model="formData.admin_name"
2022-09-21 08:44:00 +00:00
clearable
@keyup.enter="resetPage"
/>
2022-04-12 02:33:06 +00:00
</el-form-item>
<el-form-item label="访问方式">
2022-09-29 02:26:49 +00:00
<el-select class="w-[280px]" v-model="formData.type" placeholder="请选择">
2022-04-12 02:33:06 +00:00
<el-option
v-for="(item, index) in visitType"
:key="index"
:label="item.label"
:value="item.value"
2022-09-21 08:44:00 +00:00
/>
2022-04-12 02:33:06 +00:00
</el-select>
</el-form-item>
2022-04-14 08:22:13 +00:00
<el-form-item label="来源IP">
2022-09-21 08:44:00 +00:00
<el-input
2022-09-29 02:26:49 +00:00
class="w-[280px]"
2022-09-21 08:44:00 +00:00
placeholder="请输入"
v-model="formData.ip"
clearable
@keyup.enter="resetPage"
/>
2022-04-14 08:22:13 +00:00
</el-form-item>
<el-form-item label="访问时间">
2022-08-15 03:46:57 +00:00
<daterange-picker
v-model:startTime="formData.start_time"
v-model:endTime="formData.end_time"
2022-08-15 03:46:57 +00:00
/>
2022-04-14 08:22:13 +00:00
</el-form-item>
<el-form-item label="访问链接">
2022-09-21 08:44:00 +00:00
<el-input
2022-09-29 02:26:49 +00:00
class="w-[280px]"
2022-09-21 08:44:00 +00:00
placeholder="请输入"
v-model="formData.url"
clearable
@keyup.enter="resetPage"
/>
2022-04-14 08:22:13 +00:00
</el-form-item>
2022-04-12 02:33:06 +00:00
<el-form-item>
2022-08-12 10:44:09 +00:00
<el-button type="primary" @click="resetPage">查询</el-button>
<el-button @click="resetParams">重置</el-button>
<export-data
class="ml-2.5"
:fetch-fun="systemLogLists"
:params="formData"
:page-size="pager.size"
/>
2022-04-12 02:33:06 +00:00
</el-form-item>
</el-form>
</el-card>
2022-08-12 10:44:09 +00:00
<el-card class="!border-none mt-4" shadow="never" v-loading="pager.loading">
2022-04-12 02:33:06 +00:00
<div>
2022-08-12 10:44:09 +00:00
<el-table :data="pager.lists" size="large">
<el-table-column label="记录ID" prop="id" />
<el-table-column label="操作" prop="action" min-width="120" />
<el-table-column label="管理员" prop="admin_name" min-width="120" />
<el-table-column label="管理员ID" prop="admin_id" min-width="120" />
2022-08-12 10:44:09 +00:00
<el-table-column label="访问链接" prop="url" min-width="160" />
<el-table-column label="访问方式" prop="type" />
<el-table-column label="访问参数" prop="params" min-width="160" />
2022-08-12 10:44:09 +00:00
<el-table-column label="来源IP" prop="ip" min-width="160" />
<el-table-column label="日志时间" prop="create_time" min-width="180" />
2022-04-12 02:33:06 +00:00
</el-table>
</div>
2022-08-12 10:44:09 +00:00
<div class="flex mt-4 justify-end">
<pagination v-model="pager" @change="getLists" />
2022-04-12 02:33:06 +00:00
</div>
</el-card>
</div>
</template>
2022-09-20 02:58:38 +00:00
<script setup lang="ts" name="journal">
2022-08-12 10:44:09 +00:00
import { systemLogLists } from '@/api/setting/system'
import { usePaging } from '@/hooks/usePaging'
2022-04-14 08:22:13 +00:00
interface formDataObj {
admin_name?: string // 管理员
url?: string // 访问链接
ip?: string // ip
type?: string // 访问方式
start_time?: string // 日志时间开始
end_time?: string // 日志时间结束
}
2022-04-14 08:22:13 +00:00
// 查询表单
const formData = ref<formDataObj>({
admin_name: '',
2022-04-14 08:22:13 +00:00
url: '',
ip: '',
type: '',
start_time: '',
end_time: ''
2022-04-14 08:22:13 +00:00
})
2022-04-12 02:33:06 +00:00
2022-04-14 08:22:13 +00:00
// 访问方式
const visitType = ref<Array<any>>([
{
label: '全部',
value: ''
},
{
label: 'get',
value: 'get'
},
{
label: 'post',
value: 'post'
},
{
label: 'put',
value: 'put'
},
{
label: 'delete',
value: 'delete'
},
{
label: 'option',
value: 'option'
2022-04-12 02:33:06 +00:00
}
2022-04-14 08:22:13 +00:00
])
2022-04-12 02:33:06 +00:00
2022-08-12 10:44:09 +00:00
const { pager, getLists, resetParams, resetPage } = usePaging({
fetchFun: systemLogLists,
2022-04-14 08:22:13 +00:00
params: formData.value
})
2022-04-12 02:33:06 +00:00
onMounted(() => {
getLists()
})
2022-04-12 02:33:06 +00:00
</script>
<style lang="scss" scoped></style>