import { setStore, getStore } from 'utils/store' import dayjs from 'dayjs' import { sendLogs } from '@/api/user' const logs = { state: { logsList: getStore({ name: 'logsList' }) || [], }, actions: { //发送错误日志 SendLogs({ state, commit }) { return new Promise((resolve, reject) => { sendLogs(state.logsList) .then(() => { commit('CLEAR_LOGS') resolve() }) .catch(error => { reject(error) }) }) }, }, mutations: { ADD_LOGS: (state, { type, message, stack, info }) => { state.logsList.push( Object.assign( { url: window.location.href, time: dayjs().format('YYYY-MM-DD HH:mm:ss'), }, { type, message, stack, info: info.toString(), } ) ) setStore({ name: 'logsList', content: state.logsList }) }, CLEAR_LOGS: state => { state.logsList = [] setStore({ name: 'logsList', content: state.logsList }) }, }, } export default logs