No Description

breadcrumb.js 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. // TODO refactor better state mangement
  2. const { localStorage } = window
  3. const breadcrumb = {
  4. state: {
  5. visible: {
  6. firstLayer: true,
  7. secondLayer: false,
  8. thirdLayer: false,
  9. fourLayer: false
  10. },
  11. data: {
  12. firstLayer: JSON.parse(localStorage.getItem('data_1st')),
  13. secondLayer: JSON.parse(localStorage.getItem('data_2nd')),
  14. thirdLayer: JSON.parse(localStorage.getItem('data_3rd')),
  15. fourLayer: JSON.parse(localStorage.getItem('data_4th'))
  16. },
  17. query: {
  18. firstLayer: {
  19. limit: 20,
  20. page: 1,
  21. ...JSON.parse(localStorage.getItem('query_1st'))
  22. },
  23. secondLayer: {
  24. limit: 20,
  25. page: 1,
  26. ...JSON.parse(localStorage.getItem('query_2nd'))
  27. },
  28. thirdLayer: {
  29. limit: 20,
  30. page: 1,
  31. ...JSON.parse(localStorage.getItem('query_3rd'))
  32. },
  33. fourLayer: {
  34. limit: 20,
  35. page: 1,
  36. ...JSON.parse(localStorage.getItem('query_4th'))
  37. }
  38. }
  39. },
  40. mutations: {
  41. SET_VISIBLE: (state, layer) => {
  42. switch (layer) {
  43. case 1:
  44. state.visible = {
  45. firstLayer: true,
  46. secondLayer: false,
  47. thirdLayer: false,
  48. fourLayer: false
  49. }
  50. break
  51. case 2:
  52. state.visible = {
  53. firstLayer: false,
  54. secondLayer: true,
  55. thirdLayer: false,
  56. fourLayer: false
  57. }
  58. break
  59. case 3:
  60. state.visible = {
  61. firstLayer: false,
  62. secondLayer: false,
  63. thirdLayer: true,
  64. fourLayer: false
  65. }
  66. break
  67. case 4:
  68. state.visible = {
  69. firstLayer: false,
  70. secondLayer: false,
  71. thirdLayer: false,
  72. fourLayer: true
  73. }
  74. break
  75. }
  76. },
  77. SET_DATA: (state, option) => {
  78. switch (option.layer) {
  79. case 1:
  80. localStorage.setItem('data_1st', JSON.stringify(option.data))
  81. state.data.firstLayer = option.data
  82. break
  83. case 2:
  84. localStorage.setItem('data_2nd', JSON.stringify(option.data))
  85. state.data.secondLayer = option.data
  86. break
  87. case 3:
  88. localStorage.setItem('data_3rd', JSON.stringify(option.data))
  89. state.data.thirdLayer = option.data
  90. break
  91. case 4:
  92. localStorage.setItem('data_4th', JSON.stringify(option.data))
  93. state.data.fourLayer = option.data
  94. break
  95. }
  96. },
  97. SET_QUERY: (state, option) => {
  98. switch (option.layer) {
  99. case 1:
  100. localStorage.setItem('query_1st', JSON.stringify(option.query))
  101. state.query.firstLayer = { limit: 20, page: 1, ...option.query }
  102. break
  103. case 2:
  104. localStorage.setItem('query_2nd', JSON.stringify(option.query))
  105. state.query.secondLayer = { limit: 20, page: 1, ...option.query }
  106. break
  107. case 3:
  108. localStorage.setItem('query_3rd', JSON.stringify(option.query))
  109. state.query.thirdLayer = { limit: 20, page: 1, ...option.query }
  110. break
  111. case 4:
  112. localStorage.setItem('query_4th', JSON.stringify(option.query))
  113. state.query.fourLayer = { limit: 20, page: 1, ...option.query }
  114. break
  115. }
  116. }
  117. },
  118. actions: {
  119. SetVisible({ commit }, layer) {
  120. commit('SET_VISIBLE', layer)
  121. },
  122. SetData({ commit }, option) {
  123. commit('SET_DATA', option)
  124. },
  125. SetQuery({ commit }, option) {
  126. commit('SET_QUERY', option)
  127. }
  128. }
  129. }
  130. export default breadcrumb