自助管理平台登录日志界面同步

prod
1178634255 2 years ago
parent 78a260750e
commit 6cbccd7ba4

@ -1,6 +1,13 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="mini" :inline="true" v-show="showSearch" label-width="68px">
<el-form
:model="queryParams"
ref="queryForm"
size="mini"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<!-- <el-form-item label="登录地址:" prop="ipaddr" label-width="80px">-->
<!-- <el-input-->
<!-- v-model="queryParams.ipaddr"-->
@ -18,105 +25,153 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态:" prop="status">
<el-select
v-model="queryParams.status"
placeholder="登录状态"
clearable
>
<el-option
v-for="dict in dict.type.sys_common_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<!--<el-form-item label="状态:" prop="status">-->
<!-- <el-select-->
<!-- v-model="queryParams.status"-->
<!-- placeholder="登录状态"-->
<!-- clearable-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="dict in dict.type.sys_common_status"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- />-->
<!-- </el-select>-->
<!--</el-form-item>-->
<el-form-item>
<el-button-group>
<el-button type="primary" icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button
type="primary"
icon="el-icon-delete"
icon="el-icon-refresh"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['monitor:logininfor:remove']"
>删除
</el-button>
@click="resetQuery"
>重置
</el-button
>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索
</el-button
>
</el-button-group>
</el-form-item>
</el-form>
<!-- <el-row :gutter="10" class="mb8">-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['monitor:logininfor:remove']"-->
<!-- >删除-->
<!-- </el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- @click="handleClean"-->
<!-- v-hasPermi="['monitor:logininfor:remove']"-->
<!-- >清空-->
<!-- </el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- icon="el-icon-unlock"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUnlock"-->
<!-- v-hasPermi="['monitor:logininfor:unlock']"-->
<!-- >解锁-->
<!-- </el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="warning"-->
<!-- plain-->
<!-- icon="el-icon-download"-->
<!-- size="mini"-->
<!-- @click="handleExport"-->
<!-- v-hasPermi="['monitor:logininfor:export']"-->
<!-- >导出-->
<!-- </el-button>-->
<!-- </el-col>-->
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
<!-- </el-row>-->
<!-- <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['monitor:logininfor:remove']"
>删除
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
@click="handleClean"
v-hasPermi="['monitor:logininfor:remove']"
>清空
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-unlock"
size="mini"
:disabled="single"
@click="handleUnlock"
v-hasPermi="['monitor:logininfor:unlock']"
>解锁
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['monitor:logininfor:export']"
>导出
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> -->
<el-table ref="tables" v-loading="loading" :data="list" @selection-change="handleSelectionChange" border
:default-sort="defaultSort" @sort-change="handleSortChange">
<el-table-column type="selection" width="55" align="center"/>
<!-- <el-table
ref="tables"
v-loading="loading"
:data="list"
@selection-change="handleSelectionChange"
border
:default-sort="defaultSort"
@sort-change="handleSortChange"
> -->
<el-table
ref="tables"
v-loading="loading"
:data="list"
border
:default-sort="defaultSort"
>
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="用户名称" align="center" prop="userName" :show-overflow-tooltip="true" sortable="custom"
:sort-orders="['descending', 'ascending']"/>
<el-table-column label="登录地址" align="center" prop="ipaddr" width="130" :show-overflow-tooltip="true"/>
<el-table-column label="登录地点" align="center" prop="loginLocation" :show-overflow-tooltip="true"/>
<el-table-column label="浏览器" align="center" prop="browser" :show-overflow-tooltip="true"/>
<el-table-column label="操作系统" align="center" prop="os" show-overflow-tooltip/>
<el-table-column label="登录状态" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_common_status" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column
label="用户名称"
align="center"
prop="userName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="登录地址"
align="center"
prop="ipaddr"
width="130"
:show-overflow-tooltip="true"
/>
<el-table-column
label="登录地点"
align="center"
prop="loginLocation"
:show-overflow-tooltip="true"
/>
<el-table-column
label="浏览器"
align="center"
prop="browser"
:show-overflow-tooltip="true"
/>
<el-table-column
label="操作系统"
align="center"
prop="os"
show-overflow-tooltip
/>
<!--<el-table-column label="登录状态" align="center" prop="status">-->
<!-- <template slot-scope="scope">-->
<!-- <dict-tag :options="dict.type.sys_common_status" :value="scope.row.status"/>-->
<!-- </template>-->
<!--</el-table-column>-->
<el-table-column label="操作信息" align="center" prop="msg"/>
<el-table-column label="登录日期" align="center" prop="loginTime" width="180">
<el-table-column
label="登录日期"
align="center"
prop="loginTime"
width="180"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.loginTime) }}</span>
</template>
@ -127,7 +182,7 @@
</el-table>
<pagination
v-show="total>0"
v-show="total > 0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.limit"
@ -137,11 +192,11 @@
</template>
<script>
import {list, delLogininfor, cleanLogininfor, unlockLogininfor} from "@/api/monitor/logininfor";
import {list} from "@/api/monitor/logininfor";
export default {
name: "Logininfor",
dicts: ['sys_common_status'],
dicts: ["sys_common_status"],
data() {
return {
//
@ -163,15 +218,14 @@ export default {
//
dateRange: [],
//
defaultSort: {prop: 'loginTime', order: 'descending'},
//
queryParams: {
page: 1,
limit: 10,
ipaddr: undefined,
userName: undefined,
status: undefined
}
status: undefined,
},
};
},
created() {
@ -181,7 +235,8 @@ export default {
/** 查询登录日志列表 */
getList() {
this.loading = true;
list(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
list(this.addDateRange(this.queryParams, this.dateRange)).then(
(response) => {
this.list = response.data.list;
this.total = response.data.total;
this.loading = false;
@ -197,60 +252,72 @@ export default {
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.$refs.tables.sort(this.defaultSort.prop, this.defaultSort.order)
this.$refs.tables.sort(this.defaultSort.prop, this.defaultSort.order);
this.handleQuery();
},
/** 多选框选中数据 */
handleSelectionChange(selection) {
this.ids = selection.map(item => item.infoId)
this.single = selection.length != 1
this.multiple = !selection.length
this.selectName = selection.map(item => item.userName);
},
/* handleSelectionChange(selection) {
this.ids = selection.map((item) => item.infoId);
this.single = selection.length != 1;
this.multiple = !selection.length;
this.selectName = selection.map((item) => item.userName);
}, */
/** 排序触发事件 */
handleSortChange(column, prop, order) {
/* handleSortChange(column, prop, order) {
this.queryParams.orderByColumn = column.prop;
this.queryParams.isAsc = column.order;
this.getList();
},
}, */
/** 删除按钮操作 */
handleDelete(row) {
/* handleDelete(row) {
const infoIds = row.infoId || this.ids;
this.$modal.confirm('是否确认删除访问编号为"' + infoIds + '"的数据项?').then(function () {
return delLogininfor(infoIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
});
},
this.$modal
.confirm('是否确认删除访问编号为"' + infoIds + '"的数据项?')
.then(function () {
return delLogininfor(infoIds);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
}, */
/** 清空按钮操作 */
handleClean() {
this.$modal.confirm('是否确认清空所有登录日志数据项?').then(function () {
return cleanLogininfor();
}).then(() => {
this.getList();
this.$modal.msgSuccess("清空成功");
}).catch(() => {
});
},
/* handleClean() {
this.$modal
.confirm("是否确认清空所有登录日志数据项?")
.then(function () {
return cleanLogininfor();
})
.then(() => {
this.getList();
this.$modal.msgSuccess("清空成功");
})
.catch(() => {});
}, */
/** 解锁按钮操作 */
handleUnlock() {
/* handleUnlock() {
const username = this.selectName;
this.$modal.confirm('是否确认解锁用户"' + username + '"数据项?').then(function () {
return unlockLogininfor(username);
}).then(() => {
this.$modal.msgSuccess("用户" + username + "解锁成功");
}).catch(() => {
});
},
this.$modal
.confirm('是否确认解锁用户"' + username + '"数据项?')
.then(function () {
return unlockLogininfor(username);
})
.then(() => {
this.$modal.msgSuccess("用户" + username + "解锁成功");
})
.catch(() => {});
}, */
/** 导出按钮操作 */
handleExport() {
this.download('monitor/logininfor/export', {
...this.queryParams
}, `logininfor_${new Date().getTime()}.xlsx`)
}
}
/* handleExport() {
this.download(
"monitor/logininfor/export",
{
...this.queryParams,
},
`logininfor_${new Date().getTime()}.xlsx`
);
}, */
},
};
</script>

Loading…
Cancel
Save