index.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. import Http from '../common/js/http.js'
  4. Vue.use(Vuex)
  5. const store = new Vuex.Store({
  6. state: {
  7. rootSize: '100px',
  8. first: 0,
  9. second: -1,
  10. third: -1,
  11. currRoute: '',
  12. siteInfo: null,
  13. memberInfo: null,
  14. pendOrderNum: 0,
  15. storeInfo: null,
  16. userInfo: null,
  17. addon: [],
  18. menu: [],
  19. defaultImg: {
  20. goods: '',
  21. head: '',
  22. store: '',
  23. article: ''
  24. },
  25. },
  26. mutations: {
  27. setRootSize(state, value) {
  28. state.rootSize = value;
  29. },
  30. setMemuIndex(state, value) {
  31. state[value.level] = value.index;
  32. },
  33. setCurrRoute(state, value) {
  34. state.currRoute = value;
  35. },
  36. setSiteInfo(state, value) {
  37. state.siteInfo = value;
  38. },
  39. setMemberInfo(state, value) {
  40. state.memberInfo = value;
  41. },
  42. setPendOrderNum(state, value) {
  43. state.pendOrderNum = value;
  44. },
  45. setStoreInfo(state, value) {
  46. state.storeInfo = value;
  47. uni.setStorageSync('store_info', value);
  48. },
  49. setAddon(state, value) {
  50. state.addon = value;
  51. },
  52. setUserInfo(state, value) {
  53. state.userInfo = value;
  54. },
  55. setMenu(state, value) {
  56. state.menu = value;
  57. },
  58. setDefaultImg(state, value) {
  59. uni.setStorageSync('default_img', value)
  60. state.defaultImg = value;
  61. },
  62. },
  63. actions: {
  64. getSiteInfo() {
  65. Http.sendRequest({
  66. url: '/siteapi/site/info',
  67. success: res => {
  68. if (res.code == 0) {
  69. this.commit('setSiteInfo', res.data)
  70. }
  71. }
  72. })
  73. },
  74. getStoreInfo(state, params) {
  75. Http.sendRequest({
  76. url: '/cashier/storeapi/store/info',
  77. success: res => {
  78. if (res.code == 0) {
  79. if (res.data && res.data.status == 0) {
  80. uni.navigateTo({
  81. url: '/pages/store/close'
  82. });
  83. return;
  84. }
  85. this.commit('setStoreInfo', res.data);
  86. if (params && params.callback) params.callback();
  87. }
  88. }
  89. })
  90. },
  91. getAddonIsExit() {
  92. Http.sendRequest({
  93. url: '/storeapi/addon/addonisexit',
  94. success: res => {
  95. if (res.code == 0) {
  96. this.commit('setAddon', res.data)
  97. }
  98. }
  99. })
  100. },
  101. getUserInfo() {
  102. Http.sendRequest({
  103. url: '/cashier/storeapi/user/userinfo',
  104. success: res => {
  105. if (res.code == 0) {
  106. this.commit('setUserInfo', res.data)
  107. }
  108. }
  109. })
  110. },
  111. getUserGroup() {
  112. Http.sendRequest({
  113. url: '/cashier/storeapi/user/usergroupauth',
  114. success: res => {
  115. if (res.code == 0) {
  116. if (res.code == 0 && res.data) {
  117. let menu = require('@/common/menu/store.js').default ?? [];
  118. let addon = this.state.addon;
  119. const checkAuth = function(menu, auth) {
  120. let newMenu = [];
  121. menu.map(item => {
  122. if (item.children) {
  123. item.children = checkAuth(item.children, auth);
  124. }
  125. if (item.addon && addon.indexOf(item.addon) == -1)
  126. return;
  127. if (item.name && !res.data.is_admin && auth
  128. .length && auth.indexOf(item.name) == -1)
  129. return;
  130. newMenu.push(item);
  131. })
  132. return newMenu;
  133. }
  134. menu = checkAuth(JSON.parse(JSON.stringify(menu)), res.data.menu_array ?
  135. res.data.menu_array.split(',') : []);
  136. this.commit('setMenu', menu);
  137. }
  138. }
  139. }
  140. })
  141. },
  142. getDefautlImg() {
  143. Http.sendRequest({
  144. url: '/api/config/defaultimg',
  145. success: res => {
  146. if (res.code == 0) {
  147. this.commit('setDefaultImg', res.data)
  148. }
  149. }
  150. })
  151. },
  152. }
  153. })
  154. export default store