search.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import { JSONAPI } from 'vuejs/api/json-axios'
  2. import { MA } from 'vuejs/api/ma-axios'
  3. import qs from 'querystring'
  4. export default {
  5. namespaced: true,
  6. // initial state
  7. state : {
  8. keys: "",
  9. autocomplete: "",
  10. items: [],
  11. limit: 15,
  12. offset: 0
  13. },
  14. // getters
  15. getters : {},
  16. // mutations
  17. mutations : {
  18. setItems (state, items) {
  19. state.items = items
  20. },
  21. setKeys (state, keys) {
  22. state.keys = keys
  23. },
  24. setAutocomplete (state, autocomplete) {
  25. state.autocomplete = autocomplete
  26. },
  27. resetOffset(state) {
  28. state.offset = 0
  29. },
  30. incrementOffset(state) {
  31. state.offset += state.limit
  32. }
  33. },
  34. // actions
  35. actions : {
  36. newSearch({ dispatch, commit, state }, keys, autocomplete) {
  37. commit('resetOffset')
  38. commit('setKeys', keys)
  39. commit('setAutocomplete', autocomplete)
  40. dispatch('getResults')
  41. },
  42. getResults ({ dispatch, commit, state }) {
  43. let params = {
  44. keys: state.keys,
  45. autocomplete: state.autocomplete,
  46. offset:state.offset,
  47. limit: state.limit
  48. }
  49. console.log('Search getResults params', params);
  50. let q = qs.stringify(params)
  51. return MA.get(`/materio_sapi/getresults?`+q)
  52. .then(({ data }) => {
  53. console.log('search MA getresults data', data)
  54. commit('setItems', data.items)
  55. })
  56. .catch(( error ) => {
  57. console.warn('Issue with getResults', error)
  58. Promise.reject(error)
  59. })
  60. }
  61. }
  62. }