logs.js 983 B

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