user.js 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  1. import { login, logout, getInfo, getRouter, scanWwLogin } from '@/api/user'
  2. import {
  3. getToken,
  4. setToken,
  5. removeToken,
  6. getUserid,
  7. setUserid,
  8. removeUserid,
  9. getFanruanToken,
  10. setFanruanToken,
  11. setUsercode,
  12. removeUsercode
  13. } from '@/utils/auth'
  14. import { resetRouter } from '@/router'
  15. const getDefaultState = () => {
  16. return {
  17. token: getToken(), // token
  18. fanruanToken: getFanruanToken(),
  19. userid: getUserid(), // 用户id
  20. name: '', // 用户名称
  21. phone: '', // 用户手机
  22. menus: '', // 菜单
  23. customerId: '', // 经销商ID
  24. customerName: '', // 经销商名称
  25. customerNumber: '', // 经销商编码
  26. showMessages: null, //
  27. isNotice: false,
  28. websitNumber: '',
  29. isCollapse: true,
  30. isZbService: false,
  31. isService: false,
  32. isWebsite: false,
  33. isCenter: false,
  34. isAdmin: false,
  35. isMessageGroup: false,
  36. isSettlementGroup: false,
  37. roleList: [],
  38. websitId: null,
  39. greemall_user: null,
  40. showBigData: false
  41. }
  42. }
  43. const state = getDefaultState()
  44. const mutations = {
  45. RESET_STATE: state => {
  46. Object.assign(state, getDefaultState())
  47. },
  48. SET_STATUS(state, status) {
  49. state.isNotice = status
  50. },
  51. SET_USERID: (state, userid) => {
  52. state.userid = userid
  53. },
  54. SET_TOKEN: (state, token) => {
  55. state.token = token
  56. },
  57. SET_FANRUAN_TOKEN: (state, token) => {
  58. state.fanruanToken = token
  59. },
  60. SET_NAME: (state, name) => {
  61. state.name = name
  62. },
  63. SET_PHONE: (state, phone) => {
  64. state.phone = phone
  65. },
  66. SET_IS_ZB_SERVICE: (state, isZbService) => {
  67. state.isZbService = isZbService
  68. },
  69. SET_IS_SERVICE: (state, isService) => {
  70. state.isService = isService
  71. },
  72. SET_IS_ADMIN: (state, isAdmin) => {
  73. state.isAdmin = isAdmin
  74. },
  75. SET_MENUS: (state, menus) => {
  76. state.menus = menus
  77. },
  78. SET_CUSTOMERID: (state, customerId) => {
  79. state.customerId = customerId
  80. },
  81. SET_CUSTOMERNAME: (state, customerName) => {
  82. state.customerName = customerName
  83. },
  84. SET_CUSTOMERNUMBER: (state, customerNumber) => {
  85. state.customerNumber = customerNumber
  86. },
  87. SET_IS_COLLAPSE(state, bool) {
  88. state.isCollapse = !bool.isCollapse
  89. },
  90. SET_WEBSIT_NUMBER: (state, websitNumber) => {
  91. state.websitNumber = websitNumber
  92. },
  93. showMessage: (state, value) => {
  94. if (value == 'yes') {
  95. state.showMessages = true
  96. } else {
  97. state.showMessages = false
  98. state.isNotice = true
  99. }
  100. },
  101. set_greemall_user: (state, value) => {
  102. state.greemall_user = value
  103. },
  104. SET_ROLELIST: (state, roleList) => {
  105. roleList.find(v => {
  106. if (v.code === 'serviceProviderSite') {
  107. state.isWebsite = true
  108. } else {
  109. state.isWebsite = false
  110. }
  111. // if (v.code === 'topServiceProvider') {
  112. // state.isCenter = true
  113. // } else {
  114. // state.isCenter = false
  115. // }
  116. if (v.code === 'topMessenger') {
  117. state.isMessageGroup = true
  118. } else {
  119. state.isMessageGroup = false
  120. }
  121. if (v.code == 'topSettlement') {
  122. state.isSettlementGroup = true
  123. } else {
  124. state.isSettlementGroup = false
  125. }
  126. })
  127. },
  128. SET_ROLELIST: (state, roleList) => {
  129. roleList.find(v => {
  130. if (v.code === 'serviceProviderSite') {
  131. state.isWebsite = true
  132. }
  133. // if (v.code === 'topServiceProvider') {
  134. // state.isCenter = true
  135. // } else {
  136. // state.isCenter = false
  137. // }
  138. if (v.code === 'topMessenger') {
  139. state.isMessageGroup = true
  140. }
  141. if (v.code == 'topSettlement') {
  142. state.isSettlementGroup = true
  143. }
  144. })
  145. },
  146. SET_ROLE_LIST: (state, roleList) => {
  147. state.roleList = roleList
  148. },
  149. SET_WEBSIT_ID: (state, websitId) => {
  150. state.websitId = websitId
  151. },
  152. SET_SHOW_BIG_DATS: (state, bool) => {
  153. state.showBigData = bool
  154. }
  155. }
  156. const actions = {
  157. // erweima login
  158. scanWwLogin({ commit }, userInfo) {
  159. const { code, source } = userInfo
  160. // console.log(code, userInfo);
  161. return new Promise((resolve, reject) => {
  162. scanWwLogin({
  163. code: code,
  164. source: source
  165. })
  166. .then(response => {
  167. const { data } = response
  168. commit('SET_TOKEN', data.token)
  169. commit('SET_FANRUAN_TOKEN', data.fanruanToken)
  170. commit('SET_USERID', data.adminUserId)
  171. setToken(data.token)
  172. setFanruanToken(data.fanruanToken)
  173. setUserid(data.adminUserId)
  174. // commit('SET_USERCODE', data.accountBase.accountCode)
  175. // setUsercode(data.accountBase.accountCode)
  176. resolve()
  177. })
  178. .catch(error => {
  179. reject(error)
  180. })
  181. })
  182. },
  183. // user login
  184. login({ commit }, userInfo) {
  185. const { username, password, code, codeValue, loginType, smsCode } = userInfo
  186. return new Promise((resolve, reject) => {
  187. login({
  188. userName: username.trim(),
  189. password: password,
  190. code: code,
  191. codeValue: codeValue,
  192. loginType,
  193. clientType: '1',
  194. smsCode
  195. })
  196. .then(response => {
  197. const { data } = response
  198. commit('SET_TOKEN', data.token)
  199. commit('SET_FANRUAN_TOKEN', data.fanruanToken)
  200. commit('SET_USERID', data.adminUserId)
  201. setToken(data.token)
  202. setFanruanToken(data.fanruanToken)
  203. setUserid(data.adminUserId)
  204. resolve()
  205. if (data.contractSignInfo) {
  206. this.$alert(data.contractSignInfo, '提示', {
  207. confirmButtonText: '确定',
  208. callback: action => {}
  209. })
  210. }
  211. })
  212. .catch(error => {
  213. reject(error)
  214. })
  215. })
  216. },
  217. // get user info
  218. getInfo({ commit, state }) {
  219. return new Promise((resolve, reject) => {
  220. getInfo(state.userid)
  221. .then(response => {
  222. const { data } = response
  223. if (!data) {
  224. return reject('Verification failed, please Login again.')
  225. }
  226. console.log(data)
  227. const { nickName, userName } = data
  228. commit('SET_NAME', nickName)
  229. commit('SET_PHONE', userName)
  230. localStorage.setItem('greemall_user', JSON.stringify(data))
  231. resolve(data)
  232. })
  233. .catch(error => {
  234. reject(error)
  235. })
  236. })
  237. },
  238. getRouter({ commit, state }) {
  239. return new Promise((resolve, reject) => {
  240. getRouter({ adminUserId: state.userid })
  241. .then(response => {
  242. const menus = response.data.filter(item => item.flag !== 1)
  243. commit('SET_MENUS', menus)
  244. resolve()
  245. })
  246. .catch(error => {
  247. reject(error)
  248. })
  249. })
  250. },
  251. // user logout
  252. logout({ commit, state }) {
  253. return new Promise((resolve, reject) => {
  254. logout(state.token)
  255. .then(() => {
  256. removeToken() // must remove token first
  257. removeUserid()
  258. resetRouter()
  259. // 页面并清除当前页面的history记录
  260. window.history.replaceState(null, '', '')
  261. window.history.go(0)
  262. })
  263. .catch(error => {
  264. reject(error)
  265. })
  266. })
  267. },
  268. // remove token
  269. resetToken({ commit }) {
  270. return new Promise(resolve => {
  271. removeToken() // must remove token first
  272. removeUserid()
  273. commit('RESET_STATE')
  274. resolve()
  275. })
  276. },
  277. setStatus({ commit, state }) {
  278. commit('SET_IS_COLLAPSE', state)
  279. }
  280. }
  281. export default {
  282. namespaced: true,
  283. state,
  284. mutations,
  285. actions
  286. }