logs.js 1023 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { getStore, setStore } from '@/util/store'
  2. import { dateFormat } from '@/filters/'
  3. import { sendLogs } from '@/api/admin/log'
  4. const logs = {
  5. state: {
  6. logsList: getStore({ name: 'logsList' }) || []
  7. },
  8. actions: {
  9. // 发送错误日志
  10. SendLogs ({ state, commit }) {
  11. return new Promise((resolve, reject) => {
  12. sendLogs(state.logsList).then(() => {
  13. commit('CLEAR_LOGS')
  14. resolve()
  15. }).catch(error => {
  16. reject(error)
  17. })
  18. })
  19. }
  20. },
  21. mutations: {
  22. ADD_LOGS: (state, { type, message, stack, info }) => {
  23. state.logsList.push(Object.assign({
  24. url: window.location.href,
  25. time: dateFormat(new Date())
  26. }, {
  27. type,
  28. message,
  29. stack,
  30. info: info.toString()
  31. }))
  32. setStore({ name: 'logsList', content: state.logsList })
  33. },
  34. CLEAR_LOGS: (state) => {
  35. state.logsList = []
  36. setStore({ name: 'logsList', content: state.logsList })
  37. }
  38. }
  39. }
  40. export default logs