You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.4 KiB
54 lines
1.4 KiB
/**
|
|
* vuex 错误日志管理模块
|
|
*/
|
|
export default {
|
|
// 通过添加 namespaced: true 的方式使其成为带命名空间的模块
|
|
namespaced: true,
|
|
/**
|
|
* vuex的基本数据,用来存储变量
|
|
*/
|
|
state: {
|
|
logs: []
|
|
},
|
|
/**
|
|
* 从基本数据(state)派生的数据,相当于state的计算属性
|
|
*/
|
|
getters: {
|
|
|
|
},
|
|
/**
|
|
* 提交更新数据的方法,必须是同步的(如果需要异步使用action)。
|
|
* 每个 mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)。
|
|
* 回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数,提交载荷作为第二个参数。
|
|
*/
|
|
mutations: {
|
|
add: (state, log) => {
|
|
state.logs.unshift(log)
|
|
},
|
|
clear: (state) => {
|
|
state.logs.splice(0);
|
|
}
|
|
},
|
|
/**
|
|
* 和mutation的功能大致相同,不同之处在于 ==》
|
|
* 1. Action 提交的是 mutation,而不是直接变更状态。
|
|
* 2. Action 可以包含任意异步操作。
|
|
*/
|
|
actions: {
|
|
// vk.vuex.dispatch('$error/add', log);
|
|
add({ commit }, log) {
|
|
if (!log.route) {
|
|
const pages = getCurrentPages();
|
|
if (pages.length) {
|
|
log.route = pages[pages.length - 1].route;
|
|
}
|
|
}
|
|
log.route = '/' + (log.route || '');
|
|
commit('add', log);
|
|
},
|
|
// vk.vuex.dispatch('$error/clear');
|
|
clear({ commit }) {
|
|
commit('clear');
|
|
}
|
|
}
|
|
}
|