Commit 91d54a8119c4fb088de85ba5ec373aba7f5d507a

Authored by 杨泽宇
1 parent fd7e17f5

log list

src/api/user/login/index.ts
1 -import request from '../../request' 1 +import request from '../../request';
  2 +import { deleteEmptyParam } from '@/utils/tool';
2 3
3 /** 4 /**
4 * @description 登录 5 * @description 登录
@@ -35,4 +36,17 @@ export const menuData = async () => { @@ -35,4 +36,17 @@ export const menuData = async () => {
35 method: 'get', 36 method: 'get',
36 }) 37 })
37 return res 38 return res
  39 +}
  40 +
  41 +/**
  42 + * @description 日志列表
  43 + * @function logList
  44 + */
  45 +export const logList = async (params: any) => {
  46 + let res: any = await request({
  47 + url: '/log/list',
  48 + method: 'get',
  49 + params: deleteEmptyParam(params)
  50 + })
  51 + return res
38 } 52 }
39 \ No newline at end of file 53 \ No newline at end of file
src/router/modules/system.ts
@@ -8,6 +8,11 @@ const system = { @@ -8,6 +8,11 @@ const system = {
8 name: 'system', 8 name: 'system',
9 component: () => import('@/views/system/info.vue'), 9 component: () => import('@/views/system/info.vue'),
10 meta: { title: '基本信息' } 10 meta: { title: '基本信息' }
  11 + }, {
  12 + path: 'log',
  13 + name: 'log',
  14 + component: () => import('@/views/system/log.vue'),
  15 + meta: { title: '日志管理' }
11 }] 16 }]
12 } 17 }
13 18
src/views/system/log.vue 0 → 100644
  1 +<script setup lang="ts">
  2 +import { reactive, ref, onMounted } from "vue";
  3 +import { parseTime } from "@/utils/tool";
  4 +import { logList } from "@/api/user/login";
  5 +import Pagination from "@/components/Pagination/index.vue";
  6 +interface Form {
  7 + page: number;
  8 + pageSize: number;
  9 + ip: string;
  10 + userName: string;
  11 + model: string;
  12 + type: string;
  13 + startTime: string;
  14 + endTime: string;
  15 +}
  16 +interface Params {
  17 + total: number;
  18 + query: Form;
  19 +}
  20 +interface Data {
  21 + loading: boolean;
  22 + list: any[];
  23 + params: Params;
  24 +}
  25 +const value1 = ref([])
  26 +let data: Data = reactive({
  27 + list: [],
  28 + loading: false,
  29 + params: {
  30 + total: 0,
  31 + query: {
  32 + page: 1,
  33 + pageSize: 10,
  34 + ip: "",
  35 + userName: "",
  36 + model: "",
  37 + type: "",
  38 + startTime: "",
  39 + endTime: "",
  40 + },
  41 + },
  42 +});
  43 +/**
  44 + * 列表
  45 + */
  46 +const getList = async () => {
  47 + data.loading = true;
  48 + try {
  49 + const res = await logList(data.params.query);
  50 + data.list = res?.data?.data?.list;
  51 + data.params.total = res?.data?.data?.total;
  52 + } catch (e) {
  53 + console.log(e);
  54 + } finally {
  55 + data.loading = false;
  56 + }
  57 +};
  58 +/**
  59 + * 分页回调
  60 + * @param {number} page 当前页码
  61 + * @param {number} size 每页内容条数
  62 + */
  63 +const handlePageChange = (page, size) => {
  64 + data.params.query.page = page;
  65 + data.params.query.pageSize = size;
  66 + getList();
  67 +};
  68 +/**
  69 + * 时间组件回调
  70 + * @param {array} value [开始时间, 结束时间]
  71 + */
  72 +const handleTimeChange = (value: array) => {
  73 + console.log(value)
  74 + data.params.query.startTime = value? value[0]: ''
  75 + data.params.query.endTime = value? value[1]: ''
  76 + getList();
  77 +}
  78 +/**
  79 + * 查询
  80 + */
  81 +const handleSearch = () => {
  82 + getList();
  83 +};
  84 +onMounted(() => {
  85 + getList();
  86 +});
  87 +</script>
  88 +
  89 +<template>
  90 + <div class="page-container">
  91 + <h1>日志管理</h1>
  92 + <el-row style="padding-bottom: 20px">
  93 + <el-form :inline="true" label-width="70px">
  94 + <el-form-item label="IP">
  95 + <el-input
  96 + v-model.trim="data.params.query.ip"
  97 + placeholder="请填写IP"
  98 + maxlength="15"
  99 + @change="handleSearch"
  100 + />
  101 + </el-form-item>
  102 + <el-form-item label="用户名">
  103 + <el-input
  104 + v-model.trim="data.params.query.userName"
  105 + placeholder="请填写用户名"
  106 + maxlength="15"
  107 + @change="handleSearch"
  108 + />
  109 + </el-form-item>
  110 + <el-form-item label="模块">
  111 + <el-input
  112 + v-model.trim="data.params.query.model"
  113 + placeholder="请填写模块"
  114 + maxlength="15"
  115 + @change="handleSearch"
  116 + />
  117 + </el-form-item>
  118 + <el-form-item label="类型">
  119 + <el-input
  120 + v-model.trim="data.params.query.type"
  121 + placeholder="请填写类型"
  122 + maxlength="15"
  123 + @change="handleSearch"
  124 + />
  125 + </el-form-item>
  126 + <el-form-item label="时间">
  127 + <el-date-picker
  128 + v-model="value1"
  129 + type="datetimerange"
  130 + range-separator="至"
  131 + format="YYYY-MM-DD HH:mm:ss"
  132 + value-format="YYYY-MM-DD HH:mm:ss"
  133 + start-placeholder="开始时间"
  134 + end-placeholder="结束时间"
  135 + @change="handleTimeChange"
  136 + >
  137 + </el-date-picker>
  138 + </el-form-item>
  139 + <el-form-item>
  140 + <el-button type="primary" @click="handleSearch">查询</el-button>
  141 + </el-form-item>
  142 + </el-form>
  143 + </el-row>
  144 + <el-table
  145 + :data="data.list"
  146 + style="width: 100%"
  147 + border
  148 + v-loading="data.loading"
  149 + align="center"
  150 + element-loading-text="拼命加载中"
  151 + >
  152 + <el-table-column prop="id" label="ID" align="center"> </el-table-column>
  153 + <el-table-column prop="ip" label="IP" align="center"> </el-table-column>
  154 + <el-table-column prop="type" label="类型" align="center">
  155 + </el-table-column>
  156 + <el-table-column prop="model" label="模块" align="center">
  157 + </el-table-column>
  158 + <el-table-column prop="themeName" label="内容" align="center">
  159 + </el-table-column>
  160 + <el-table-column prop="time" label="操作时间" align="center">
  161 + </el-table-column>
  162 + <el-table-column prop="userName" label="操作人" align="center">
  163 + </el-table-column>
  164 + </el-table>
  165 + <Pagination
  166 + :total="data.params.total"
  167 + :currentPage="data.params.query.page"
  168 + :pageSize="data.params.query.pageSize"
  169 + @pageChange="handlePageChange"
  170 + ></Pagination>
  171 + </div>
  172 +</template>
src/views/user/edit.vue
@@ -233,7 +233,7 @@ onMounted(() =&gt; { @@ -233,7 +233,7 @@ onMounted(() =&gt; {
233 </el-checkbox-group> 233 </el-checkbox-group>
234 </el-form-item> 234 </el-form-item>
235 <!-- 当前登录的用户是物业管理员,表单里才有关联小区 --> 235 <!-- 当前登录的用户是物业管理员,表单里才有关联小区 -->
236 - <el-form-item label="小区" style="width: 100%" v-show="asyncData.userType === '1'"> 236 + <el-form-item label="小区" style="width: 100%" v-show="asyncData.userType === 1">
237 <el-checkbox-group 237 <el-checkbox-group
238 v-model="form.communityList" 238 v-model="form.communityList"
239 @change="(data) => (form.data.neighborhoodIds = data.join(','))" 239 @change="(data) => (form.data.neighborhoodIds = data.join(','))"
src/views/user/index.vue
@@ -191,7 +191,7 @@ onMounted(() =&gt; { @@ -191,7 +191,7 @@ onMounted(() =&gt; {
191 element-loading-text="拼命加载中" 191 element-loading-text="拼命加载中"
192 > 192 >
193 <el-table-column prop="id" label="ID" align="center"></el-table-column> 193 <el-table-column prop="id" label="ID" align="center"></el-table-column>
194 - <el-table-column prop="userName" label="昵称" align="center"> 194 + <el-table-column prop="userName" label="用户名" align="center">
195 </el-table-column> 195 </el-table-column>
196 <el-table-column prop="cellphone" label="手机号" align="center"> 196 <el-table-column prop="cellphone" label="手机号" align="center">
197 </el-table-column> 197 </el-table-column>