|
@@ -5,33 +5,26 @@
|
|
|
<template>
|
|
<template>
|
|
|
<div class="login-log">
|
|
<div class="login-log">
|
|
|
<el-card class="mb-3 proCard">
|
|
<el-card class="mb-3 proCard">
|
|
|
- <el-space >
|
|
|
|
|
|
|
+ <el-space>
|
|
|
<el-form ref="searchFormRef" :inline="true" :model="requestParams.queryParam" class="form-inline">
|
|
<el-form ref="searchFormRef" :inline="true" :model="requestParams.queryParam" class="form-inline">
|
|
|
<el-form-item label="事件类型" prop="eventType">
|
|
<el-form-item label="事件类型" prop="eventType">
|
|
|
- <el-select
|
|
|
|
|
- v-model="requestParams.queryParam.eventType"
|
|
|
|
|
- placeholder="请选择事件类型"
|
|
|
|
|
- clearable>
|
|
|
|
|
- <el-option
|
|
|
|
|
- :label="item.label"
|
|
|
|
|
- :value="item.value"
|
|
|
|
|
- v-for="item in eventList"
|
|
|
|
|
- :key="item.value" />
|
|
|
|
|
|
|
+ <el-select v-model="requestParams.queryParam.eventType" placeholder="请选择事件类型" clearable>
|
|
|
|
|
+ <el-option :label="item.label" :value="item.value" v-for="item in eventList" :key="item.value" />
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="登录时间" prop="date">
|
|
<el-form-item label="登录时间" prop="date">
|
|
|
- <el-date-picker
|
|
|
|
|
- v-model="requestParams.queryParam.date"
|
|
|
|
|
- type="daterange"
|
|
|
|
|
- placeholder="请选择登录时间"
|
|
|
|
|
|
|
+ <el-date-picker
|
|
|
|
|
+ v-model="requestParams.queryParam.date"
|
|
|
|
|
+ type="daterange"
|
|
|
|
|
+ placeholder="请选择登录时间"
|
|
|
range-separator="~"
|
|
range-separator="~"
|
|
|
start-placeholder="开始时间"
|
|
start-placeholder="开始时间"
|
|
|
end-placeholder="结束时间"
|
|
end-placeholder="结束时间"
|
|
|
:disabled-date="disabledDate"
|
|
:disabled-date="disabledDate"
|
|
|
- clearable
|
|
|
|
|
|
|
+ clearable
|
|
|
format="YYYY/MM/DD"
|
|
format="YYYY/MM/DD"
|
|
|
value-format="YYYY/MM/DD"
|
|
value-format="YYYY/MM/DD"
|
|
|
- />
|
|
|
|
|
|
|
+ />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
<el-button type="primary" :icon="Search" @click="querySystemLogPage">查询</el-button>
|
|
<el-button type="primary" :icon="Search" @click="querySystemLogPage">查询</el-button>
|
|
@@ -47,9 +40,9 @@
|
|
|
</template>
|
|
</template>
|
|
|
<el-table height="calc(100vh - 450px)" :data="systemLogList" v-loading="loading">
|
|
<el-table height="calc(100vh - 450px)" :data="systemLogList" v-loading="loading">
|
|
|
<el-table-column type="index" label="序号" width="100" />
|
|
<el-table-column type="index" label="序号" width="100" />
|
|
|
- <el-table-column label="事件类型" prop="realName" >
|
|
|
|
|
|
|
+ <el-table-column label="事件类型" prop="realName">
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
|
- <span>{{ eventTypeArr[row.eventType] }}</span>
|
|
|
|
|
|
|
+ <span>{{ eventTypeArr[row.eventType] }}</span>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
<el-table-column label="时间" prop="createdAt" />
|
|
<el-table-column label="时间" prop="createdAt" />
|
|
@@ -57,75 +50,82 @@
|
|
|
</el-table>
|
|
</el-table>
|
|
|
|
|
|
|
|
<section class="mt-4 flex justify-end">
|
|
<section class="mt-4 flex justify-end">
|
|
|
- <el-pagination background layout="total, sizes, prev, pager, next" :page-sizes="[10, 30, 50]" :total="total"
|
|
|
|
|
- v-model:page-size="requestParams.pageSize" v-model:current-page="requestParams.pageNumber"
|
|
|
|
|
- @change="querySystemLogPage" />
|
|
|
|
|
|
|
+ <el-pagination
|
|
|
|
|
+ background
|
|
|
|
|
+ layout="total, sizes, prev, pager, next"
|
|
|
|
|
+ :page-sizes="[10, 30, 50]"
|
|
|
|
|
+ :total="total"
|
|
|
|
|
+ v-model:page-size="requestParams.pageSize"
|
|
|
|
|
+ v-model:current-page="requestParams.pageNumber"
|
|
|
|
|
+ @change="querySystemLogPage"
|
|
|
|
|
+ />
|
|
|
</section>
|
|
</section>
|
|
|
</el-card>
|
|
</el-card>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
-import { ref,onMounted } from 'vue';
|
|
|
|
|
-import { Search, Refresh, Edit } from '@element-plus/icons-vue';
|
|
|
|
|
-import useSystemQuery from '../hooks/useSystemQuery';
|
|
|
|
|
-import { ElMessage, ElMessageBox } from 'element-plus';
|
|
|
|
|
-import { exportSystemLog } from '@/api/system/log';
|
|
|
|
|
-import { downloadByData } from '@/utils/file/download';
|
|
|
|
|
-import { eventList, eventTypeArr } from '@/types/log/constants.ts';
|
|
|
|
|
-import type { FormInstance } from 'element-plus'
|
|
|
|
|
|
|
+ import { ref, onMounted } from 'vue';
|
|
|
|
|
+ import { Search, Refresh } from '@element-plus/icons-vue';
|
|
|
|
|
+ import useSystemQuery from '../hooks/useSystemQuery';
|
|
|
|
|
+ import { ElMessage } from 'element-plus';
|
|
|
|
|
+ import { exportSystemLog } from '@/api/system/log';
|
|
|
|
|
+ import { downloadByData } from '@/utils/file/download';
|
|
|
|
|
+ import { eventList, eventTypeArr } from '@/types/log/constants.ts';
|
|
|
|
|
+ import type { FormInstance } from 'element-plus';
|
|
|
|
|
+ import { msgConfirm } from '@/utils/element-plus/messageBox';
|
|
|
|
|
|
|
|
-const { requestParams, total, systemLogList, loading, resetRequestParams, querySystemLogPage } = useSystemQuery();
|
|
|
|
|
|
|
+ const { requestParams, total, systemLogList, loading, resetRequestParams, querySystemLogPage } = useSystemQuery();
|
|
|
|
|
|
|
|
-onMounted(async () => {
|
|
|
|
|
- querySystemLogPage();
|
|
|
|
|
-});
|
|
|
|
|
|
|
+ onMounted(async () => {
|
|
|
|
|
+ querySystemLogPage();
|
|
|
|
|
+ });
|
|
|
|
|
|
|
|
-/* 导出数据 */
|
|
|
|
|
-const handleExport = () => {
|
|
|
|
|
- ElMessageBox.confirm('确定导出所查询数据?', '导出', {
|
|
|
|
|
|
|
+ /* 导出数据 */
|
|
|
|
|
+ const handleExport = () => {
|
|
|
|
|
+ msgConfirm('确定导出所查询数据?', '导出', {
|
|
|
confirmButtonText: '确定',
|
|
confirmButtonText: '确定',
|
|
|
showCancelButton: true,
|
|
showCancelButton: true,
|
|
|
type: 'warning',
|
|
type: 'warning',
|
|
|
})
|
|
})
|
|
|
- .then(() => {
|
|
|
|
|
- exportSystemLog(requestParams.queryParam).then(async (responnse) => {
|
|
|
|
|
- if (!responnse) {
|
|
|
|
|
- throw new Error('下载文件失败');
|
|
|
|
|
- }
|
|
|
|
|
- downloadByData(responnse, '系统日志.xlsx');
|
|
|
|
|
- ElMessage.success('下载文件成功');
|
|
|
|
|
|
|
+ .then(() => {
|
|
|
|
|
+ exportSystemLog(requestParams.queryParam).then(async (responnse) => {
|
|
|
|
|
+ if (!responnse) {
|
|
|
|
|
+ throw new Error('下载文件失败');
|
|
|
|
|
+ }
|
|
|
|
|
+ downloadByData(responnse, '系统日志.xlsx');
|
|
|
|
|
+ ElMessage.success('下载文件成功');
|
|
|
|
|
+ });
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch(() => {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: 'info',
|
|
|
|
|
+ message: '取消导出',
|
|
|
|
|
+ });
|
|
|
});
|
|
});
|
|
|
- })
|
|
|
|
|
- .catch(() => {
|
|
|
|
|
- ElMessage({
|
|
|
|
|
- type: 'info',
|
|
|
|
|
- message: '取消导出',
|
|
|
|
|
- });
|
|
|
|
|
- });
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
-/* 重置 */
|
|
|
|
|
-const searchFormRef = ref<FormInstance>()
|
|
|
|
|
-const handleResetForm = (formEl: FormInstance | undefined) => {
|
|
|
|
|
- if (!formEl) return
|
|
|
|
|
- resetRequestParams();
|
|
|
|
|
- formEl.resetFields();
|
|
|
|
|
- querySystemLogPage();
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ /* 重置 */
|
|
|
|
|
+ const searchFormRef = ref<FormInstance>();
|
|
|
|
|
+ const handleResetForm = (formEl: FormInstance | undefined) => {
|
|
|
|
|
+ if (!formEl) return;
|
|
|
|
|
+ resetRequestParams();
|
|
|
|
|
+ formEl.resetFields();
|
|
|
|
|
+ querySystemLogPage();
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
-/* 设置今天之后的时间不可选 */
|
|
|
|
|
-const disabledDate = (time) => {
|
|
|
|
|
- return time.getTime() > Date.now();
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ /* 设置今天之后的时间不可选 */
|
|
|
|
|
+ const disabledDate = (time) => {
|
|
|
|
|
+ return time.getTime() > Date.now();
|
|
|
|
|
+ };
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
<style scoped lang="scss">
|
|
|
-.form-inline .el-input {
|
|
|
|
|
- --el-input-width: 160px;
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ .form-inline .el-input {
|
|
|
|
|
+ --el-input-width: 160px;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
-.form-inline .el-select {
|
|
|
|
|
- --el-select-width: 160px;
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ .form-inline .el-select {
|
|
|
|
|
+ --el-select-width: 160px;
|
|
|
|
|
+ }
|
|
|
</style>
|
|
</style>
|