import { Component } from 'react'
|
import { notification } from 'antd'
|
import moment from 'moment'
|
|
import Api from '@/api'
|
import Utils from '@/utils/utils.js'
|
import MKEmitter from '@/utils/events.js'
|
|
/**
|
* @description 操作记录,每隔10分钟更新一次
|
*/
|
class QueryLog extends Component {
|
state = {
|
logs: []
|
}
|
|
componentDidMount () {
|
MKEmitter.addListener('queryTrigger', this.queryTrigger)
|
setTimeout(() => {
|
this.sendLog()
|
}, 600000)
|
}
|
|
/**
|
* @description 组件销毁,清除state更新
|
*/
|
componentWillUnmount () {
|
this.setState = () => {
|
return
|
}
|
MKEmitter.removeListener('queryTrigger', this.queryTrigger)
|
}
|
|
sendLog = () => {
|
const { logs } = this.state
|
|
let logMap = new Map()
|
|
logs.forEach(item => {
|
if (logMap.has(item.menuId)) {
|
let _item = logMap.get(item.menuId)
|
_item.times++
|
logMap.set(item.menuId, _item)
|
} else {
|
item.times = 1
|
logMap.set(item.menuId, item)
|
}
|
})
|
|
let userid = sessionStorage.getItem('UserID') || ''
|
let LText = [...logMap.values()].map(item => `select '${item.menuId}','${item.times}','${item.name || ''}','${window.GLOB.appkey}','${userid}'`)
|
|
if (LText.length === 0) {
|
setTimeout(() => {
|
this.sendLog()
|
}, 600000)
|
return
|
}
|
|
// {func: 's_get_local_users_operation_log'} 本地接口 返回 long_param 传入 sso 的 s_get_users_operation_log
|
|
let param = {
|
func: 's_get_users_operation_log',
|
exec_type: window.GLOB.execType || 'y',
|
LText: LText.join(' union all '),
|
long_param: ''
|
}
|
|
param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
|
param.secretkey = Utils.encrypt('', param.timestamp)
|
param.LText = Utils.formatOptions(param.LText, param.exec_type)
|
|
Api.getSystemConfig(param).then(result => {
|
if (!result.status) {
|
notification.warning({
|
top: 92,
|
message: result.message,
|
duration: 3
|
})
|
return
|
}
|
|
setTimeout(() => {
|
this.sendLog()
|
}, 600000)
|
this.setState({logs: []})
|
})
|
}
|
|
queryTrigger = (item) => {
|
this.setState({logs: [...this.state.logs, item]})
|
}
|
|
render () {
|
return null
|
}
|
}
|
|
export default QueryLog
|