parent
54a788a917
commit
f131de1dc4
@ -0,0 +1,80 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
/**
|
||||
* 查询系统登录日志列表页接口
|
||||
* @param {*} data
|
||||
*/
|
||||
export function queryLoginLogListAPI(data) {
|
||||
return request({
|
||||
url: 'admin/log/loginRecord',
|
||||
method: 'post',
|
||||
headers: {
|
||||
'Content-Type': 'application/json;charset=UTF-8'
|
||||
},
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 系统登录日志导出
|
||||
* @param {*} data
|
||||
*/
|
||||
// export function loginLogExportAPI(data) {
|
||||
// return request({
|
||||
// url: 'admin/log/excelImport',
|
||||
// method: 'post',
|
||||
// data: data,
|
||||
// responseType: 'blob',
|
||||
// headers: {
|
||||
// 'Content-Type': 'application/json;charset=UTF-8'
|
||||
// },
|
||||
// timeout: 60000
|
||||
// })
|
||||
// }
|
||||
|
||||
/**
|
||||
* 查看系统操作日志接口
|
||||
* @param {*} data
|
||||
*/
|
||||
export function querySystemLogListAPI(data) {
|
||||
return request({
|
||||
url: 'admin/log/systemRecord',
|
||||
method: 'post',
|
||||
headers: {
|
||||
'Content-Type': 'application/json;charset=UTF-8'
|
||||
},
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看数据操作日志接口
|
||||
* @param {*} data
|
||||
*/
|
||||
export function queryDataOptionLogListAPI(data) {
|
||||
return request({
|
||||
url: 'admin/log/dataRecord',
|
||||
method: 'post',
|
||||
headers: {
|
||||
'Content-Type': 'application/json;charset=UTF-8'
|
||||
},
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 系统日志导出
|
||||
* @param {*} data
|
||||
*/
|
||||
export function systemLogExportAPI(data) {
|
||||
return request({
|
||||
url: 'admin/log/excelImport',
|
||||
method: 'post',
|
||||
data: data,
|
||||
responseType: 'blob',
|
||||
headers: {
|
||||
'Content-Type': 'application/json;charset=UTF-8'
|
||||
},
|
||||
timeout: 60000
|
||||
})
|
||||
}
|
@ -0,0 +1,129 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
ref="wkDialog"
|
||||
:visible="visible"
|
||||
:append-to-body="true"
|
||||
:close-on-click-modal="false"
|
||||
title="重置部门"
|
||||
width="500px"
|
||||
@close="handleCancel">
|
||||
<div >
|
||||
<el-form
|
||||
ref="form"
|
||||
:model="fieldFrom"
|
||||
:rules="rules"
|
||||
label-position="top">
|
||||
<el-form-item
|
||||
label="部门"
|
||||
prop="structure_id">
|
||||
<wk-dep-select
|
||||
v-model="fieldFrom.structure_id"
|
||||
radio
|
||||
style="width: 100%;"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<span
|
||||
slot="footer"
|
||||
class="dialog-footer">
|
||||
<el-button @click.native="handleCancel">取消</el-button>
|
||||
<el-button
|
||||
v-debounce="handleConfirm"
|
||||
type="primary">保存</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
adminUserSetUserDeptPI
|
||||
} from '@/api/admin/employeeDep'
|
||||
|
||||
import WkDepSelect from '@/components/NewCom/WkDepSelect'
|
||||
|
||||
import ElDialogLoadingMixin from '@/mixins/ElDialogLoading'
|
||||
|
||||
export default {
|
||||
// 重置部门
|
||||
name: 'EditDepDialog',
|
||||
|
||||
components: {
|
||||
WkDepSelect
|
||||
},
|
||||
|
||||
mixins: [ElDialogLoadingMixin],
|
||||
|
||||
props: {
|
||||
selectionList: Array, // 员工信息
|
||||
visible: {
|
||||
type: Boolean,
|
||||
required: true,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
fieldFrom: {
|
||||
structure_id: ''
|
||||
},
|
||||
rules: {
|
||||
structure_id: { required: true, message: '请选择', trigger: 'change' }
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
computed: {},
|
||||
|
||||
watch: {},
|
||||
|
||||
created() {},
|
||||
|
||||
mounted() {},
|
||||
|
||||
beforeDestroy() {},
|
||||
|
||||
methods: {
|
||||
/**
|
||||
* 取消选择
|
||||
*/
|
||||
handleCancel() {
|
||||
this.$emit('update:visible', false)
|
||||
},
|
||||
|
||||
/**
|
||||
* 点击确定
|
||||
*/
|
||||
handleConfirm() {
|
||||
this.$refs.form.validate(valid => {
|
||||
if (valid) {
|
||||
const id = this.selectionList.map(item => item.id)
|
||||
this.loading = true
|
||||
adminUserSetUserDeptPI({
|
||||
...this.fieldFrom,
|
||||
id
|
||||
}).then(res => {
|
||||
this.loading = false
|
||||
this.$message.success('操作成功')
|
||||
this.$emit('change')
|
||||
this.handleCancel()
|
||||
}).catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.el-form {
|
||||
margin-top: 10px;
|
||||
/deep/ .el-form-item__label {
|
||||
line-height: 30px;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,263 @@
|
||||
<template>
|
||||
<div class="main">
|
||||
<xr-header
|
||||
icon-class="wk wk-record"
|
||||
icon-color="#2362FB"
|
||||
label="数据操作日志" />
|
||||
<div class="main-body">
|
||||
<flexbox class="main-table-header">
|
||||
<el-date-picker
|
||||
v-model="dateTime"
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd"
|
||||
range-separator="-"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"/>
|
||||
<xh-user-cell
|
||||
:radio="false"
|
||||
placeholder="选择人员"
|
||||
@value-change="userChange" />
|
||||
<el-select
|
||||
v-model="model"
|
||||
@click="modelChange">
|
||||
<el-option
|
||||
v-for="item in modelOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"/>
|
||||
</el-select>
|
||||
<el-select
|
||||
v-model="subModelLabels"
|
||||
multiple
|
||||
collapse-tags>
|
||||
<el-option
|
||||
v-for="item in subModelsOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"/>
|
||||
</el-select>
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="refreshList">查询</el-button>
|
||||
<el-button
|
||||
class="main-table-header-button"
|
||||
@click="exportClick">导出</el-button>
|
||||
</flexbox>
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="list"
|
||||
:height="tableHeight"
|
||||
class="main-table"
|
||||
highlight-current-row
|
||||
style="width: 100%">
|
||||
<el-table-column
|
||||
v-for="(item, index) in fieldList"
|
||||
:key="index"
|
||||
:prop="item.prop"
|
||||
:label="item.label"
|
||||
show-overflow-tooltip/>
|
||||
<el-table-column/>
|
||||
</el-table>
|
||||
<div class="p-contianer">
|
||||
<el-pagination
|
||||
:current-page="currentPage"
|
||||
:page-sizes="pageSizes"
|
||||
:page-size.sync="pageSize"
|
||||
:total="total"
|
||||
class="p-bar"
|
||||
background
|
||||
layout="prev, pager, next, sizes, total, jumper"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
systemLogExportAPI,
|
||||
queryDataOptionLogListAPI
|
||||
} from '@/api/admin/log'
|
||||
|
||||
import XrHeader from '@/components/XrHeader'
|
||||
import XhUserCell from '@/components/CreateCom/XhUserCell'
|
||||
import { Loading } from 'element-ui'
|
||||
import HandleLogMixin from './mixins/HandleLog'
|
||||
|
||||
import { downloadExcelWithResData } from '@/utils'
|
||||
|
||||
export default {
|
||||
// 操作日志日志
|
||||
name: 'DataHandleLog',
|
||||
components: {
|
||||
XrHeader,
|
||||
XhUserCell
|
||||
},
|
||||
mixins: [HandleLogMixin],
|
||||
data() {
|
||||
return {
|
||||
loading: false, // 加载动画
|
||||
tableHeight: document.documentElement.clientHeight - 240, // 表的高度
|
||||
dateTime: [],
|
||||
userList: [],
|
||||
model: '',
|
||||
subModelLabels: [],
|
||||
list: [],
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
pageSizes: [10, 20, 30, 40],
|
||||
total: 0,
|
||||
|
||||
postParams: {}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
subModelsOptions() {
|
||||
const item = this.modelOptions.find(item => item.value === this.model)
|
||||
return item ? item.list : []
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
// 控制table的高度
|
||||
window.onresize = () => {
|
||||
self.tableHeight = document.documentElement.clientHeight - 240
|
||||
}
|
||||
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
userChange(data) {
|
||||
this.userList = data.value || []
|
||||
},
|
||||
|
||||
refreshList() {
|
||||
this.currentPage = 1
|
||||
this.getList()
|
||||
},
|
||||
|
||||
/**
|
||||
* 模块change
|
||||
*/
|
||||
modelChange() {
|
||||
this.subModelLabels = []
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取列表数据
|
||||
*/
|
||||
getList() {
|
||||
this.loading = true
|
||||
const params = {
|
||||
page: this.currentPage,
|
||||
limit: this.pageSize,
|
||||
model: this.model
|
||||
// type: 1 // 1 数据操作日志 2 系统操作日志
|
||||
}
|
||||
if (this.userList && this.userList.length) {
|
||||
params.userIds = this.userList.map(item => item.id)
|
||||
}
|
||||
|
||||
if (this.dateTime && this.dateTime.length) {
|
||||
params.startTime = this.dateTime[0]
|
||||
params.endTime = this.dateTime[1]
|
||||
}
|
||||
|
||||
params.subModelLabels = this.subModelLabels
|
||||
this.postParams = params
|
||||
queryDataOptionLogListAPI(params)
|
||||
.then(res => {
|
||||
const list = res.data.list
|
||||
// list.forEach(item => {
|
||||
// item.model = this.getModelName(item.model)
|
||||
// })
|
||||
this.list = list
|
||||
this.total = res.data.count
|
||||
this.loading = false
|
||||
})
|
||||
.catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 添加审批流
|
||||
*/
|
||||
exportClick() {
|
||||
const loading = Loading.service({ fullscreen: true, text: '导出中...' })
|
||||
systemLogExportAPI({ ...this.postParams, action: 'getRecordLogs' })
|
||||
.then(res => {
|
||||
downloadExcelWithResData(res)
|
||||
loading.close()
|
||||
})
|
||||
.catch(() => {
|
||||
loading.close()
|
||||
})
|
||||
},
|
||||
// 更改每页展示数量
|
||||
handleSizeChange(val) {
|
||||
this.pageSize = val
|
||||
this.getList()
|
||||
},
|
||||
// 更改当前页数
|
||||
handleCurrentChange(val) {
|
||||
this.currentPage = val
|
||||
this.getList()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.main {
|
||||
height:100%;
|
||||
|
||||
/deep/ .xr-header {
|
||||
padding: 15px 30px;
|
||||
}
|
||||
}
|
||||
|
||||
.main-body {
|
||||
background-color: white;
|
||||
border-top: 1px solid $xr-border-line-color;
|
||||
border-bottom: 1px solid $xr-border-line-color;
|
||||
}
|
||||
|
||||
.main-table-header {
|
||||
height: 50px;
|
||||
background-color: white;
|
||||
position: relative;
|
||||
.main-table-header-button {
|
||||
margin-right: 20px;
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
}
|
||||
|
||||
.el-date-editor--daterange {
|
||||
width: 300px;
|
||||
margin: 0 20px;
|
||||
}
|
||||
|
||||
/deep/ .user-container {
|
||||
width: 200px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.el-select {
|
||||
margin-right: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.p-contianer {
|
||||
position: relative;
|
||||
background-color: white;
|
||||
height: 44px;
|
||||
.p-bar {
|
||||
float: right;
|
||||
margin: 5px 100px 0 0;
|
||||
font-size: 14px !important;
|
||||
}
|
||||
}
|
||||
|
||||
@import '../styles/table.scss';
|
||||
</style>
|
@ -0,0 +1,275 @@
|
||||
<template>
|
||||
<div class="main">
|
||||
<xr-header
|
||||
icon-class="wk wk-record"
|
||||
icon-color="#2362FB"
|
||||
label="登录日志" />
|
||||
<div class="main-body">
|
||||
<flexbox class="main-table-header">
|
||||
<el-date-picker
|
||||
v-model="dateTime"
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd"
|
||||
range-separator="-"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"/>
|
||||
<xh-user-cell
|
||||
:radio="false"
|
||||
placeholder="选择人员"
|
||||
@value-change="userChange" />
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="refreshList">查询</el-button>
|
||||
<el-button
|
||||
class="main-table-header-button"
|
||||
@click="exportClick">导出</el-button>
|
||||
</flexbox>
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="list"
|
||||
:height="tableHeight"
|
||||
:cell-class-name="cellClassName"
|
||||
class="main-table"
|
||||
highlight-current-row
|
||||
style="width: 100%">
|
||||
<el-table-column
|
||||
v-for="(item, index) in fieldList"
|
||||
:key="index"
|
||||
:prop="item.prop"
|
||||
:label="item.label"
|
||||
show-overflow-tooltip/>
|
||||
<el-table-column/>
|
||||
</el-table>
|
||||
<div class="p-contianer">
|
||||
<el-pagination
|
||||
:current-page="currentPage"
|
||||
:page-sizes="pageSizes"
|
||||
:page-size.sync="pageSize"
|
||||
:total="total"
|
||||
class="p-bar"
|
||||
background
|
||||
layout="prev, pager, next, sizes, total, jumper"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
queryLoginLogListAPI,
|
||||
systemLogExportAPI
|
||||
} from '@/api/admin/log'
|
||||
|
||||
import XrHeader from '@/components/XrHeader'
|
||||
import XhUserCell from '@/components/CreateCom/XhUserCell'
|
||||
import { Loading } from 'element-ui'
|
||||
|
||||
import { downloadExcelWithResData } from '@/utils'
|
||||
|
||||
export default {
|
||||
// 登录日志
|
||||
name: 'LoginLog',
|
||||
components: {
|
||||
XrHeader,
|
||||
XhUserCell
|
||||
},
|
||||
mixins: [],
|
||||
data() {
|
||||
return {
|
||||
loading: false, // 加载动画
|
||||
tableHeight: document.documentElement.clientHeight - 240, // 表的高度
|
||||
dateTime: [],
|
||||
userList: [],
|
||||
list: [],
|
||||
fieldList: [
|
||||
{
|
||||
prop: 'username',
|
||||
label: '用户',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
prop: 'create_time',
|
||||
label: '登录时间',
|
||||
width: 150
|
||||
},
|
||||
{
|
||||
prop: 'ip',
|
||||
label: 'IP地址',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
prop: 'address',
|
||||
label: '登录地点',
|
||||
width: 150
|
||||
},
|
||||
{
|
||||
prop: 'remark',
|
||||
label: '设备类型',
|
||||
width: 150
|
||||
},
|
||||
{
|
||||
prop: 'browser',
|
||||
label: '终端内核',
|
||||
width: 150
|
||||
},
|
||||
{
|
||||
prop: 'os',
|
||||
label: '平台',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
prop: 'type',
|
||||
label: '认证结果',
|
||||
width: 100
|
||||
}
|
||||
],
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
pageSizes: [10, 20, 30, 40],
|
||||
total: 0,
|
||||
|
||||
postParams: {}
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
mounted() {
|
||||
// 控制table的高度
|
||||
window.onresize = () => {
|
||||
self.tableHeight = document.documentElement.clientHeight - 240
|
||||
}
|
||||
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
userChange(data) {
|
||||
this.userList = data.value || []
|
||||
},
|
||||
|
||||
refreshList() {
|
||||
this.currentPage = 1
|
||||
this.getList()
|
||||
},
|
||||
|
||||
/** 获取列表数据 */
|
||||
getList() {
|
||||
this.loading = true
|
||||
const params = {
|
||||
page: this.currentPage,
|
||||
limit: this.pageSize
|
||||
}
|
||||
if (this.userList && this.userList.length) {
|
||||
params.userIds = this.userList.map(item => item.id)
|
||||
}
|
||||
|
||||
if (this.dateTime && this.dateTime.length) {
|
||||
params.startTime = this.dateTime[0]
|
||||
params.endTime = this.dateTime[1]
|
||||
}
|
||||
|
||||
this.postParams = params
|
||||
queryLoginLogListAPI(params)
|
||||
.then(res => {
|
||||
const list = res.data.list || []
|
||||
// list.forEach(item => {
|
||||
// item.authResult = {
|
||||
// 1: '成功',
|
||||
// 2: '失败'
|
||||
// }[item.authResult]
|
||||
// })
|
||||
this.list = list
|
||||
this.total = res.data.dataCount
|
||||
this.loading = false
|
||||
})
|
||||
.catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 通过回调控制class
|
||||
*/
|
||||
cellClassName({ row, column, rowIndex, columnIndex }) {
|
||||
if (column.property === 'name') {
|
||||
return 'can-visit--underline'
|
||||
} else {
|
||||
return ''
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 添加审批流
|
||||
*/
|
||||
exportClick() {
|
||||
const loading = Loading.service({ fullscreen: true, text: '导出中...' })
|
||||
systemLogExportAPI({ ...this.postParams, action: 'getLoginRecord' })
|
||||
.then(res => {
|
||||
downloadExcelWithResData(res)
|
||||
loading.close()
|
||||
})
|
||||
.catch(() => {
|
||||
loading.close()
|
||||
})
|
||||
},
|
||||
// 更改每页展示数量
|
||||
handleSizeChange(val) {
|
||||
this.pageSize = val
|
||||
this.getList()
|
||||
},
|
||||
// 更改当前页数
|
||||
handleCurrentChange(val) {
|
||||
this.currentPage = val
|
||||
this.getList()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.main {
|
||||
height:100%;
|
||||
|
||||
/deep/ .xr-header {
|
||||
padding: 15px 30px;
|
||||
}
|
||||
}
|
||||
|
||||
.main-body {
|
||||
background-color: white;
|
||||
border-top: 1px solid $xr-border-line-color;
|
||||
border-bottom: 1px solid $xr-border-line-color;
|
||||
}
|
||||
|
||||
.main-table-header {
|
||||
height: 50px;
|
||||
background-color: white;
|
||||
position: relative;
|
||||
.main-table-header-button {
|
||||
margin-right: 20px;
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
}
|
||||
|
||||
.el-date-editor--daterange {
|
||||
width: 300px;
|
||||
margin: 0 20px;
|
||||
}
|
||||
|
||||
/deep/ .user-container {
|
||||
width: 200px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.p-contianer {
|
||||
position: relative;
|
||||
background-color: white;
|
||||
height: 44px;
|
||||
.p-bar {
|
||||
float: right;
|
||||
margin: 5px 100px 0 0;
|
||||
font-size: 14px !important;
|
||||
}
|
||||
}
|
||||
|
||||
@import '../styles/table.scss';
|
||||
</style>
|
@ -0,0 +1,240 @@
|
||||
<template>
|
||||
<div class="main">
|
||||
<xr-header
|
||||
icon-class="wk wk-record"
|
||||
icon-color="#2362FB"
|
||||
label="系统操作日志" />
|
||||
<div class="main-body">
|
||||
<flexbox class="main-table-header">
|
||||
<el-date-picker
|
||||
v-model="dateTime"
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd"
|
||||
range-separator="-"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"/>
|
||||
<xh-user-cell
|
||||
:radio="false"
|
||||
placeholder="选择人员"
|
||||
@value-change="userChange" />
|
||||
<el-select
|
||||
v-model="subModelLabels"
|
||||
multiple
|
||||
style="width: 200px;"
|
||||
collapse-tags>
|
||||
<el-option
|
||||
v-for="item in sysOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"/>
|
||||
</el-select>
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="refreshList">查询</el-button>
|
||||
<el-button
|
||||
class="main-table-header-button"
|
||||
@click="exportClick">导出</el-button>
|
||||
</flexbox>
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="list"
|
||||
:height="tableHeight"
|
||||
class="main-table"
|
||||
highlight-current-row
|
||||
style="width: 100%">
|
||||
<el-table-column
|
||||
v-for="(item, index) in fieldList"
|
||||
:key="index"
|
||||
:prop="item.prop"
|
||||
:label="item.label"
|
||||
show-overflow-tooltip/>
|
||||
<el-table-column/>
|
||||
</el-table>
|
||||
<div class="p-contianer">
|
||||
<el-pagination
|
||||
:current-page="currentPage"
|
||||
:page-sizes="pageSizes"
|
||||
:page-size.sync="pageSize"
|
||||
:total="total"
|
||||
class="p-bar"
|
||||
background
|
||||
layout="prev, pager, next, sizes, total, jumper"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
querySystemLogListAPI,
|
||||
systemLogExportAPI
|
||||
} from '@/api/admin/log'
|
||||
|
||||
import XrHeader from '@/components/XrHeader'
|
||||
import XhUserCell from '@/components/CreateCom/XhUserCell'
|
||||
import { Loading } from 'element-ui'
|
||||
|
||||
import HandleLogMixin from './mixins/HandleLog'
|
||||
import { downloadExcelWithResData } from '@/utils'
|
||||
|
||||
export default {
|
||||
// 系统操作日志
|
||||
name: 'SysHandleLog',
|
||||
components: {
|
||||
XrHeader,
|
||||
XhUserCell
|
||||
},
|
||||
mixins: [HandleLogMixin],
|
||||
data() {
|
||||
return {
|
||||
loading: false, // 加载动画
|
||||
tableHeight: document.documentElement.clientHeight - 240, // 表的高度
|
||||
dateTime: [],
|
||||
userList: [],
|
||||
subModelLabels: [],
|
||||
list: [],
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
pageSizes: [10, 20, 30, 40],
|
||||
total: 0,
|
||||
|
||||
postParams: {}
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
mounted() {
|
||||
// 控制table的高度
|
||||
window.onresize = () => {
|
||||
self.tableHeight = document.documentElement.clientHeight - 240
|
||||
}
|
||||
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
userChange(data) {
|
||||
this.userList = data.value || []
|
||||
},
|
||||
|
||||
refreshList() {
|
||||
this.currentPage = 1
|
||||
this.getList()
|
||||
},
|
||||
|
||||
/** 获取列表数据 */
|
||||
getList() {
|
||||
this.loading = true
|
||||
const params = {
|
||||
page: this.currentPage,
|
||||
limit: this.pageSize
|
||||
// modules: 'admin'
|
||||
// type: 2 // 1 数据操作日志 2 系统操作日志
|
||||
}
|
||||
if (this.userList && this.userList.length) {
|
||||
params.userIds = this.userList.map(item => item.id)
|
||||
}
|
||||
|
||||
if (this.dateTime && this.dateTime.length) {
|
||||
params.startTime = this.dateTime[0]
|
||||
params.endTime = this.dateTime[1]
|
||||
}
|
||||
|
||||
params.subModelLabels = this.subModelLabels
|
||||
this.postParams = params
|
||||
querySystemLogListAPI(params)
|
||||
.then(res => {
|
||||
const list = res.data.list
|
||||
list.forEach(item => {
|
||||
item.action = item.module
|
||||
})
|
||||
this.list = list
|
||||
this.total = res.data.count
|
||||
this.loading = false
|
||||
})
|
||||
.catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 添加审批流
|
||||
*/
|
||||
exportClick() {
|
||||
const loading = Loading.service({ fullscreen: true, text: '导出中...' })
|
||||
systemLogExportAPI({ ...this.postParams, action: 'getSystemLogs' })
|
||||
.then(res => {
|
||||
downloadExcelWithResData(res)
|
||||
loading.close()
|
||||
})
|
||||
.catch(() => {
|
||||
loading.close()
|
||||
})
|
||||
},
|
||||
// 更改每页展示数量
|
||||
handleSizeChange(val) {
|
||||
this.pageSize = val
|
||||
this.getList()
|
||||
},
|
||||
// 更改当前页数
|
||||
handleCurrentChange(val) {
|
||||
this.currentPage = val
|
||||
this.getList()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.main {
|
||||
height:100%;
|
||||
|
||||
/deep/ .xr-header {
|
||||
padding: 15px 30px;
|
||||
}
|
||||
}
|
||||
|
||||
.main-body {
|
||||
background-color: white;
|
||||
border-top: 1px solid $xr-border-line-color;
|
||||
border-bottom: 1px solid $xr-border-line-color;
|
||||
}
|
||||
|
||||
.main-table-header {
|
||||
height: 50px;
|
||||
background-color: white;
|
||||
position: relative;
|
||||
.main-table-header-button {
|
||||
margin-right: 20px;
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
}
|
||||
|
||||
.el-date-editor--daterange {
|
||||
width: 300px;
|
||||
margin: 0 20px;
|
||||
}
|
||||
|
||||
/deep/ .user-container {
|
||||
width: 200px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.el-select {
|
||||
margin-right: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.p-contianer {
|
||||
position: relative;
|
||||
background-color: white;
|
||||
height: 44px;
|
||||
.p-bar {
|
||||
float: right;
|
||||
margin: 5px 100px 0 0;
|
||||
font-size: 14px !important;
|
||||
}
|
||||
}
|
||||
|
||||
@import '../styles/table.scss';
|
||||
</style>
|
@ -0,0 +1,226 @@
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
modelOptions: [{
|
||||
label: '客户管理',
|
||||
value: 'crm',
|
||||
list: [{
|
||||
label: '线索',
|
||||
value: 'crm_leads'
|
||||
}, {
|
||||
label: '客户',
|
||||
value: 'crm_customer'
|
||||
}, {
|
||||
label: '联系人',
|
||||
value: 'crm_contacts'
|
||||
}, {
|
||||
label: '商机',
|
||||
value: 'crm_business'
|
||||
}, {
|
||||
label: '合同',
|
||||
value: 'crm_contract'
|
||||
}, {
|
||||
label: '回款',
|
||||
value: 'crm_receivables'
|
||||
}, {
|
||||
label: '发票',
|
||||
value: 'crm_invoice'
|
||||
}, {
|
||||
label: '回访',
|
||||
value: 'crm_visit'
|
||||
}, {
|
||||
label: '产品',
|
||||
value: 'crm_product'
|
||||
}
|
||||
// {
|
||||
// label: '市场活动',
|
||||
// value: 30
|
||||
// }
|
||||
]
|
||||
}, {
|
||||
label: '办公管理',
|
||||
value: 'oa',
|
||||
list: [{
|
||||
label: '日历',
|
||||
value: 'oa_event'
|
||||
}, {
|
||||
label: '日志',
|
||||
value: 'oa_log'
|
||||
}]
|
||||
}, {
|
||||
label: '项目管理',
|
||||
value: 'work',
|
||||
list: [{
|
||||
label: '项目',
|
||||
value: 'work'
|
||||
}, {
|
||||
label: '任务',
|
||||
value: 'work_task'
|
||||
}]
|
||||
}
|
||||
// {
|
||||
// label: '人力资源',
|
||||
// value: 'hrm',
|
||||
// list: [{
|
||||
// label: '组织管理',
|
||||
// value: 61
|
||||
// }, {
|
||||
// label: '招聘管理',
|
||||
// value: 62
|
||||
// }, {
|
||||
// label: '候选人',
|
||||
// value: 63
|
||||
// }, {
|
||||
// label: '员工管理',
|
||||
// value: 64
|
||||
// }, {
|
||||
// label: '社保管理',
|
||||
// value: 65
|
||||
// }, {
|
||||
// label: '薪资管理',
|
||||
// value: 66
|
||||
// }, {
|
||||
// label: '薪资档案',
|
||||
// value: 67
|
||||
// }, {
|
||||
// label: '工资条',
|
||||
// value: 68
|
||||
// }, {
|
||||
// label: '绩效考核',
|
||||
// value: 69
|
||||
// }]
|
||||
// },
|
||||
// {
|
||||
// label: '进销存',
|
||||
// value: 'jxc',
|
||||
// list: [{
|
||||
// label: '供应商',
|
||||
// value: 81
|
||||
// }, {
|
||||
// label: '采购订单',
|
||||
// value: 82
|
||||
// }, {
|
||||
// label: '采购退货',
|
||||
// value: 83
|
||||
// }, {
|
||||
// label: '产品管理',
|
||||
// value: 84
|
||||
// }, {
|
||||
// label: '销售订单',
|
||||
// value: 85
|
||||
// }, {
|
||||
// label: '销售退货',
|
||||
// value: 86
|
||||
// }, {
|
||||
// label: '仓库管理',
|
||||
// value: 87
|
||||
// }, {
|
||||
// label: '产品库存',
|
||||
// value: 88
|
||||
// }, {
|
||||
// label: '产品入库',
|
||||
// value: 89
|
||||
// }, {
|
||||
// label: '产品出库',
|
||||
// value: 90
|
||||
// }, {
|
||||
// label: '库存调拨',
|
||||
// value: 91
|
||||
// }, {
|
||||
// label: '库存盘点',
|
||||
// value: 92
|
||||
// }, {
|
||||
// label: '回款',
|
||||
// value: 93
|
||||
// }, {
|
||||
// label: '付款',
|
||||
// value: 93
|
||||
// }]
|
||||
// }
|
||||
],
|
||||
sysOptions: [{
|
||||
label: '企业首页',
|
||||
value: 'company'
|
||||
}, {
|
||||
label: '应用管理',
|
||||
value: 'application'
|
||||
}, {
|
||||
label: '员工管理',
|
||||
value: 'employee'
|
||||
}, {
|
||||
label: '部门管理',
|
||||
value: 'structures'
|
||||
}, {
|
||||
label: '角色管理',
|
||||
value: 'role'
|
||||
}, {
|
||||
label: '项目管理',
|
||||
value: 'project'
|
||||
}, {
|
||||
label: '客户管理',
|
||||
value: 'customer'
|
||||
},
|
||||
// {
|
||||
// label: '人力资源',
|
||||
// value: 8
|
||||
// }, {
|
||||
// label: '进销存',
|
||||
// value: 9
|
||||
// },
|
||||
{
|
||||
label: '其他设置',
|
||||
value: 'work_task'
|
||||
}],
|
||||
fieldList: [
|
||||
{
|
||||
prop: 'user_name',
|
||||
label: '用户',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
prop: 'create_time',
|
||||
label: '时间',
|
||||
width: 150
|
||||
},
|
||||
{
|
||||
prop: 'ip',
|
||||
label: 'IP地址',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
prop: 'action',
|
||||
label: '模块',
|
||||
width: 150
|
||||
},
|
||||
{
|
||||
prop: 'action_name',
|
||||
label: '行为',
|
||||
width: 150
|
||||
},
|
||||
{
|
||||
prop: 'source_name',
|
||||
label: '对象',
|
||||
width: 150
|
||||
},
|
||||
{
|
||||
prop: 'content',
|
||||
label: '操作详情',
|
||||
width: 100
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
getModelName(model) {
|
||||
return {
|
||||
crm: '客户管理',
|
||||
oa: '办公管理',
|
||||
work: '项目管理',
|
||||
hrm: '人力资源',
|
||||
jxc: '进销存',
|
||||
admin: '系统管理'
|
||||
}[model]
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in new issue