123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- <template>
- <div class="part-box is-filter">
- <el-form inline>
- <el-form-item label="登录名">
- <el-input
- v-model.trim="searchModel.loginName"
- placeholder="请输入"
- clearable
- style="width: 120px"
- >
- </el-input>
- </el-form-item>
- <el-form-item label="用户类型">
- <el-select
- v-model="searchModel.userType"
- placeholder="请选择"
- clearable
- style="width: 120px"
- >
- <el-option label="请选择" value="" />
- <el-option label="管理员" value="管理员" />
- <el-option label="普通用户" value="普通用户" />
- </el-select>
- </el-form-item>
- <el-form-item label="操作类型">
- <el-select
- v-model="searchModel.operationType"
- placeholder="请选择"
- clearable
- style="width: 120px"
- >
- <el-option label="请选择" value="" />
- <el-option label="登录" value="登录" />
- <el-option label="登出" value="登出" />
- <el-option label="查询" value="查询" />
- <el-option label="新增" value="新增" />
- <el-option label="修改" value="修改" />
- <el-option label="删除" value="删除" />
- <el-option label="导入" value="导入" />
- <el-option label="导出" value="导出" />
- </el-select>
- </el-form-item>
- </el-form>
- <el-space wrap>
- <el-button type="primary" @click="toPage(1)">查询</el-button>
- <el-button @click="exportData">导出</el-button>
- </el-space>
- </div>
- <div class="part-box">
- <el-table class="page-table" :data="dataList" :loading="loading">
- <el-table-column type="index" label="序号" width="60" />
- <el-table-column property="loginName" label="登录名" min-width="120" />
- <el-table-column property="userType" label="用户类型" width="100" />
- <el-table-column property="operationType" label="操作类型" width="100" />
- <el-table-column property="loginIp" label="登录IP" width="140" />
- <el-table-column property="function" label="功能模块" min-width="200" />
- <el-table-column property="operationTime" label="操作时间" width="180" />
- <el-table-column property="detail" label="详情" width="180" />
- </el-table>
- <el-pagination
- v-model:current-page="pagination.pageNumber"
- v-model:page-size="pagination.pageSize"
- :layout="pagination.layout"
- :total="pagination.total"
- @size-change="pageSizeChange"
- @current-change="toPage"
- />
- </div>
- </template>
- <script setup lang="ts">
- import { reactive } from 'vue';
- import { getLogList } from '@/api/log';
- import { LogItem, LogListFilter } from '@/api/types/log';
- import useTable from '@/hooks/table';
- defineOptions({
- name: 'LogManage',
- });
- const searchModel = reactive<LogListFilter>({
- loginName: '',
- userType: '',
- operationType: '',
- });
- const { dataList, pagination, loading, toPage, pageSizeChange } =
- useTable<LogItem>(getLogList, searchModel, false);
- function exportData() {
- // TODO: 实现导出功能
- }
- </script>
|