log
Former-commit-id: 067af1ad15588da779f6fdb52d8dd5e4d5337a83 [formerly 067af1ad15588da779f6fdb52d8dd5e4d5337a83 [formerly 067af1ad15588da779f6fdb52d8dd5e4d5337a83 [formerly 067af1ad15588da779f6fdb52d8dd5e4d5337a83 [formerly 26bff908e7e98cdecb3942975cb8dac912d22760 [formerly 5394d813fcdce16e699ff3d54fca956c87f1b56b]]]]] Former-commit-id: 4d70ea535fa6b135fd63ef83fc090e9a9d851e39 Former-commit-id: faec9e738fabb0225ec9ed61b86c30f269c02486 Former-commit-id: 9b54c495f13d810d67fa85e2129c05eec4a99324 [formerly 46471134b136a5df475c7787b5694052aca6b8ae] Former-commit-id: 0eb56ebbfa256ce1c2d3c1d99994ec7236c7ad5f Former-commit-id: 68c0847f64453808a6afc906ffc110654ccf84a4 Former-commit-id: 93c3b439339c575b5d7a085262817b295a852058 Former-commit-id: 32ccde3e80c1ec1a1dc8bc335082eb6ac80ea3e1 Former-commit-id: b8e2a549af61ff83b566fd961085ad7414d21b2d
This commit is contained in:
@@ -136,15 +136,15 @@ export default {
|
|||||||
ExpandItem
|
ExpandItem
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState('d2admin', [
|
...mapState('d2admin', {
|
||||||
'log'
|
logList: state => state.log.list
|
||||||
]),
|
}),
|
||||||
logReverse () {
|
logReverse () {
|
||||||
// 直接 reverse 的话有点问题
|
// 直接 reverse 的话有点问题
|
||||||
const res = []
|
const res = []
|
||||||
const loglength = this.log.length
|
const loglength = this.logList.length
|
||||||
this.log.forEach((log, index) => {
|
this.logList.forEach((log, index) => {
|
||||||
res.push(this.log[loglength - 1 - index])
|
res.push(this.logList[loglength - 1 - index])
|
||||||
})
|
})
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,10 @@
|
|||||||
<el-badge
|
<el-badge
|
||||||
v-if="logLength > 0"
|
v-if="logLength > 0"
|
||||||
:max="99"
|
:max="99"
|
||||||
:value="logErrorLength"
|
:value="logLengthError"
|
||||||
:is-dot="logErrorLength === 0">
|
:is-dot="logLengthError === 0">
|
||||||
<d2-icon
|
<d2-icon
|
||||||
:name="logErrorLength === 0 ? 'dot-circle-o' : 'bug'"
|
:name="logLengthError === 0 ? 'dot-circle-o' : 'bug'"
|
||||||
style="font-size: 20px"/>
|
style="font-size: 20px"/>
|
||||||
</el-badge>
|
</el-badge>
|
||||||
<d2-icon
|
<d2-icon
|
||||||
@@ -49,21 +49,21 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters('d2admin', [
|
...mapGetters('d2admin', {
|
||||||
'logLength',
|
logLength: 'log/length',
|
||||||
'logErrorLength'
|
logLengthError: 'log/lengthError'
|
||||||
]),
|
}),
|
||||||
tooltipContent () {
|
tooltipContent () {
|
||||||
return this.logLength === 0
|
return this.logLength === 0
|
||||||
? '没有日志或异常'
|
? '没有日志或异常'
|
||||||
: `${this.logLength} 条日志${this.logErrorLength > 0
|
: `${this.logLength} 条日志${this.logLengthError > 0
|
||||||
? ` | 包含 ${this.logErrorLength} 个异常`
|
? ` | 包含 ${this.logLengthError} 个异常`
|
||||||
: ''}`
|
: ''}`
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
...mapMutations('d2admin', [
|
...mapMutations('d2admin/log', [
|
||||||
'logClean'
|
'clean'
|
||||||
]),
|
]),
|
||||||
handleClick () {
|
handleClick () {
|
||||||
if (this.logLength > 0) {
|
if (this.logLength > 0) {
|
||||||
@@ -72,7 +72,7 @@ export default {
|
|||||||
},
|
},
|
||||||
handleLogClean () {
|
handleLogClean () {
|
||||||
this.dialogVisible = false
|
this.dialogVisible = false
|
||||||
this.logClean()
|
this.clean()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dropdown class="d2-mr">
|
<el-dropdown class="d2-mr">
|
||||||
<span class="btn-text">你好 {{userInfo.name}}</span>
|
<span class="btn-text">你好 {{info.name}}</span>
|
||||||
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-menu slot="dropdown">
|
||||||
<el-dropdown-item @click.native="logOff">
|
<el-dropdown-item @click.native="logOff">
|
||||||
<d2-icon name="power-off" class="d2-mr-5"/>
|
<d2-icon name="power-off" class="d2-mr-5"/>
|
||||||
@@ -14,9 +14,9 @@
|
|||||||
import { mapState, mapActions } from 'vuex'
|
import { mapState, mapActions } from 'vuex'
|
||||||
export default {
|
export default {
|
||||||
computed: {
|
computed: {
|
||||||
...mapState('d2admin', {
|
...mapState('d2admin/user', [
|
||||||
userInfo: state => state.user.info
|
'info'
|
||||||
})
|
])
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
...mapActions('d2admin', [
|
...mapActions('d2admin', [
|
||||||
|
|||||||
@@ -85,11 +85,9 @@ export default {
|
|||||||
...mapState('d2admin/menu', [
|
...mapState('d2admin/menu', [
|
||||||
'asideCollapse'
|
'asideCollapse'
|
||||||
]),
|
]),
|
||||||
...mapGetters('d2admin', [
|
...mapGetters('d2admin', {
|
||||||
'keepAliveInclude'
|
keepAliveInclude: 'keepAliveInclude',
|
||||||
]),
|
themeActiveSetting: 'theme/activeSetting'
|
||||||
...mapGetters('d2admin/theme', {
|
|
||||||
themeActiveSetting: 'activeSetting'
|
|
||||||
}),
|
}),
|
||||||
/**
|
/**
|
||||||
* @description 最外层容器的背景图片样式
|
* @description 最外层容器的背景图片样式
|
||||||
|
|||||||
@@ -155,11 +155,9 @@ export default {
|
|||||||
'pageCurrent',
|
'pageCurrent',
|
||||||
'ua'
|
'ua'
|
||||||
]),
|
]),
|
||||||
...mapGetters('d2admin', [
|
...mapGetters('d2admin', {
|
||||||
'keepAliveInclude'
|
keepAliveInclude: 'keepAliveInclude',
|
||||||
]),
|
themeActiveSetting: 'theme/activeSetting'
|
||||||
...mapGetters('d2admin/theme', {
|
|
||||||
themeActiveSetting: 'activeSetting'
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ export default {
|
|||||||
install (Vue, options) {
|
install (Vue, options) {
|
||||||
Vue.config.errorHandler = function (err, vm, info) {
|
Vue.config.errorHandler = function (err, vm, info) {
|
||||||
Vue.nextTick(() => {
|
Vue.nextTick(() => {
|
||||||
store.commit('d2admin/logAdd', {
|
store.dispatch('d2admin/log/add', {
|
||||||
type: 'error',
|
type: 'error',
|
||||||
err,
|
err,
|
||||||
vm,
|
vm,
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ export default {
|
|||||||
Vue.prototype.$log = util.log
|
Vue.prototype.$log = util.log
|
||||||
// 快速记录日志
|
// 快速记录日志
|
||||||
Vue.prototype.$logAdd = function (info) {
|
Vue.prototype.$logAdd = function (info) {
|
||||||
store.commit('d2admin/logAdd', {
|
store.dispatch('d2admin/log/add', {
|
||||||
type: 'log',
|
type: 'log',
|
||||||
info
|
info
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
e2e9f9e3f236b74d6b87a1b9a3865b19b4afc9fb
|
2eb4adc620a4ffb94292cc6c574b7290fccf8356
|
||||||
75
src/store/modules/d2admin/modules/log.js
Normal file
75
src/store/modules/d2admin/modules/log.js
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
import dayjs from 'dayjs'
|
||||||
|
import get from 'lodash.get'
|
||||||
|
import util from '@/libs/util.js'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
namespaced: true,
|
||||||
|
state: {
|
||||||
|
// 错误日志
|
||||||
|
list: []
|
||||||
|
},
|
||||||
|
getters: {
|
||||||
|
/**
|
||||||
|
* @description 返回现存 log (all) 的条数
|
||||||
|
* @param {*} state vuex state
|
||||||
|
*/
|
||||||
|
length (state) {
|
||||||
|
return state.list.length
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* @description 返回现存 log (error) 的条数
|
||||||
|
* @param {*} state vuex state
|
||||||
|
*/
|
||||||
|
lengthError (state) {
|
||||||
|
return state.list.filter(l => l.type === 'error').length
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mutations: {
|
||||||
|
/**
|
||||||
|
* @description 清空日志
|
||||||
|
* @param {Object} state vuex state
|
||||||
|
*/
|
||||||
|
clean (state) {
|
||||||
|
// store 赋值
|
||||||
|
state.list = []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
actions: {
|
||||||
|
/**
|
||||||
|
* @description 添加一个日志
|
||||||
|
* @param {Object} state vuex state
|
||||||
|
* @param {Object} param type {String}: 类型
|
||||||
|
* @param {Object} param err {Error}: 错误对象
|
||||||
|
* @param {Object} param vm {Object}: vue 实例
|
||||||
|
* @param {Object} param info {String}: 信息
|
||||||
|
*/
|
||||||
|
add ({ state, rootState }, { type, err, vm, info }) {
|
||||||
|
// store 赋值
|
||||||
|
state.list.push(Object.assign({
|
||||||
|
// 记录类型
|
||||||
|
type: 'log', // or error
|
||||||
|
// 信息
|
||||||
|
info: '',
|
||||||
|
// 错误对象
|
||||||
|
err: '',
|
||||||
|
// vue 实例
|
||||||
|
vm: '',
|
||||||
|
// 当前用户信息
|
||||||
|
user: rootState.d2admin.user.info,
|
||||||
|
// 当前用户的 uuid
|
||||||
|
uuid: util.cookies.get('uuid'),
|
||||||
|
// 当前的 token
|
||||||
|
token: util.cookies.get('token'),
|
||||||
|
// 当前地址
|
||||||
|
url: get(window, 'location.href', ''),
|
||||||
|
// 当前时间
|
||||||
|
time: dayjs().format('YYYY-M-D HH:mm:ss')
|
||||||
|
}, {
|
||||||
|
type,
|
||||||
|
err,
|
||||||
|
vm,
|
||||||
|
info
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user