<template>
|
<basicContainer >
|
<avue-crud
|
:option="option"
|
:table-loading="pageF.loading"
|
:data="tableData"
|
:page="page"
|
:permission="permissionList"
|
:before-open="beforeOpen"
|
v-model="form"
|
ref="crudRef"
|
@row-del="rowDel"
|
@search-change="searchChange"
|
@search-reset="searchReset"
|
@selection-change="selectionChange"
|
@current-change="currentChange"
|
@size-change="sizeChange"
|
@on-load="onLoad"
|
>
|
<template #menu-left>
|
<el-button
|
type="danger"
|
icon="Delete"
|
:disabled="pageF.multiple"
|
@click="handleDelete"
|
v-hasPermi="['system:logininfor:remove']"
|
>删除
|
</el-button>
|
<el-button
|
type="danger"
|
plain
|
icon="Delete"
|
@click="handleClean"
|
v-hasPermi="['system:logininfor:remove']"
|
>清空</el-button>
|
<el-button
|
type="warning"
|
plain
|
icon="Download"
|
@click="handleExport"
|
v-hasPermi="['system:logininfor:export']"
|
>导出
|
</el-button>
|
</template>
|
<template #status="scope">
|
<dict-tag v-if="scope.dic" :options="scope.dic" :value="scope.row.status" />
|
</template>
|
</avue-crud>
|
</basicContainer>
|
</template>
|
|
<script setup name="logininfor" lang="ts">
|
import {LogininforI, delLogininfor, listLogininfor,exportLogininfor,cleanLogininfor} from "@/api/monitor/logininfor";
|
import useCurrentInstance from "@/utils/useCurrentInstance";
|
import {computed,reactive, ref, toRefs} from "vue";
|
import {PagesInterface, PageQueryInterface} from "@/utils/globalInterface";
|
import {usePagePlus} from "@/hooks/usePagePlus";
|
import {hasPermission} from "@/utils/permissionUtils";
|
|
const { proxy } = useCurrentInstance();
|
const crudRef = ref();
|
|
const permissionList = computed(()=>{
|
return {
|
addBtn: hasPermission(["system:logininfor:add"]),
|
delBtn: hasPermission(["system:logininfor:remove"]),
|
editBtn: hasPermission(["system:logininfor:edit"]),
|
viewBtn: hasPermission(["system:logininfor:query"]),
|
}
|
})
|
|
const data = reactive({
|
form:<LogininforI>{},
|
queryParams:<LogininforI&PageQueryInterface>{},
|
page: <PagesInterface>{
|
pageSize: 10,
|
total: 0,
|
currentPage: 1,
|
},
|
selectionList:[],
|
})
|
const {queryParams,form,page,selectionList} = toRefs(data);
|
|
|
const { tableData,pageF,rowDel,beforeOpen,searchChange,
|
searchReset,selectionChange,onLoad,currentChange,sizeChange,handleDelete,handleExport,handleUpdate} = usePagePlus({
|
form:form.value,
|
queryParams:queryParams.value,
|
idKey:'infoId',
|
page:page.value,
|
getListApi:listLogininfor,
|
exportApi:exportLogininfor,
|
deleteApi:delLogininfor,
|
handleSelectionChangeFunc:(selection:any)=>{
|
selectionList.value = selection;
|
}
|
})
|
|
const option = ref({
|
rowKey: 'infoId',
|
menu: false,
|
addBtn: false,
|
column: {
|
infoId: {
|
label: '访问编号',
|
},
|
userName: {
|
label: '用户名称', search: true,
|
},
|
ipaddr: {
|
label: '登录地址', search: true,
|
},
|
loginLocation: {
|
label: '登录地点',
|
},
|
browser: {
|
label: '浏览器类型',
|
},
|
os: {
|
label: '操作系统',
|
},
|
status: {
|
label: '登录状态', search: true,
|
type: 'radio', dicUrl: '/system/dict/data/type/sys_common_status',
|
},
|
msg: {
|
label: '描述',
|
},
|
loginTime: {
|
label: '访问时间',
|
},
|
}
|
})
|
/** 清空按钮操作 */
|
function handleClean() {
|
proxy.$modal.confirm("是否确认清空所有登录日志数据项?").then(function () {
|
return cleanLogininfor();
|
}).then(() => {
|
page.value.currentPage = 1;
|
onLoad(page.value);
|
proxy.$modal.msgSuccess("清空成功");
|
}).catch(() => {});
|
}
|
</script>
|