user.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. import { login, logout, getInfo } from '@/api/user'
  2. import { GetDataByName } from '@/api/common'
  3. import { getToken, setToken, removeToken } from '@/utils/auth'
  4. import { resetRouter } from '@/router'
  5. import { Message } from 'element-ui'
  6. import Cookies from 'js-cookie'
  7. const state = {
  8. token: getToken(),
  9. name: '',
  10. avatar: '',
  11. pastureid: '',
  12. pasturename: '',
  13. pasturenumber: '',
  14. employename: '',
  15. employeid: '',
  16. dashchartid: '',
  17. dashchartidisedit: '',
  18. roles: [],
  19. buttons: [],
  20. decimal:'',
  21. decimalr:''
  22. }
  23. const mutations = {
  24. SET_DASHCHARTID: (state, dashchartid) => {
  25. state.dashchartid = dashchartid
  26. },
  27. SET_DASHCHARTIDISEDIT: (state, dashchartidisedit) => {
  28. state.dashchartidisedit = dashchartidisedit
  29. },
  30. SET_TOKEN: (state, token) => {
  31. state.token = token
  32. },
  33. SET_NAME: (state, name) => {
  34. state.name = name
  35. Cookies.set('name', name)
  36. },
  37. SET_AVATAR: (state, avatar) => {
  38. state.avatar = avatar
  39. },
  40. SET_ROLES: (state, roles) => {
  41. state.roles = roles
  42. },
  43. SET_PASTUREID: (state, pastureid) => {
  44. Cookies.set('pastureid', pastureid)
  45. Cookies.set('pageCount', 50)
  46. state.pastureid = pastureid
  47. },
  48. SET_PASTURENAME: (state, pasturename) => {
  49. Cookies.set('pasturename', pasturename)
  50. state.pasturename = pasturename
  51. },
  52. SET_PASTURENUMBER: (state, pasturenumber) => {
  53. Cookies.set('pasturenumber', pasturenumber)
  54. state.pasturenumber = pasturenumber
  55. },
  56. SET_EMPLOYEID: (state, employeid) => {
  57. Cookies.set('employeid', employeid)
  58. // console.log('Cookies.set.employeid', employeid)
  59. state.employeid = employeid
  60. },
  61. SET_EMPLOYENAME: (state, employename) => {
  62. Cookies.set('employename', employename)
  63. state.employename = employename
  64. },
  65. SET_ISPASTUREUSE: (state, ispastureuse) => {
  66. Cookies.set('ispastureuse', ispastureuse)
  67. state.ispastureuse = ispastureuse
  68. },
  69. SET_DECIMAL: (state, decimal) => {
  70. Cookies.set('decimal', decimal)
  71. state.decimal = decimal
  72. },
  73. SET_DECIMALR: (state, decimalr) => {
  74. Cookies.set('decimalr', decimalr)
  75. state.decimalr = decimalr
  76. },
  77. SET_DEPARTMENTID: (state, departmentid) => {
  78. Cookies.set('departmentid', departmentid)
  79. state.departmentid = departmentid
  80. },
  81. SET_BUTTONS: (state, buttons) => {
  82. Cookies.set('buttons', buttons)
  83. sessionStorage.setItem('buttons', JSON.stringify(buttons))
  84. state.buttons = buttons
  85. }
  86. }
  87. const actions = {
  88. // user login
  89. login({ commit }, userInfo) {
  90. const { username, password } = userInfo
  91. return new Promise((resolve, reject) => {
  92. login({ username: username.trim(), password: password }).then(response => {
  93. // login({ username: username.trim(), password: password }).then(response => {
  94. const { data, msg } = response
  95. if (msg !== 'ok') {
  96. Message({
  97. message: data,
  98. type: 'error',
  99. duration: 5 * 1000
  100. })
  101. reject(data)
  102. }
  103. commit('SET_TOKEN', data.token)
  104. if (Cookies == null) {
  105. console.log(1)
  106. }
  107. setToken(data.token)
  108. resolve()
  109. }).catch(error => {
  110. reject(error)
  111. })
  112. })
  113. },
  114. // get user info
  115. getInfo({ commit, state }) {
  116. return new Promise((resolve, reject) => {
  117. getInfo(state.token).then(response => {
  118. const { data } = response
  119. if (!data) {
  120. reject('Verification failed, please Login again.')
  121. }
  122. const { role, username, avatar } = data
  123. if (!role || role.length <= 0) {
  124. // reject('getInfo: roles must be a non-null array!')
  125. reject('该用户未授权,请联系管理员!')
  126. return false
  127. }
  128. // if (roleid !== null || roleid !== undefined || roleid !== '') {
  129. // reject('getInfo: roles must be a non-null array!')
  130. // }
  131. GetDataByName({ 'name': 'findByUserPastureName', 'parammaps': { 'jwt_username': username } }).then(response => {
  132. if (response.data.list !== null) {
  133. commit('SET_PASTUREID', response.data.list[0].pastureId)
  134. commit('SET_PASTURENAME', response.data.list[0].pastureName)
  135. commit('SET_PASTURENUMBER', response.data.list[0].pastureNumber)
  136. commit('SET_EMPLOYEID', response.data.list[0].employeId)
  137. commit('SET_EMPLOYENAME', response.data.list[0].employeName)
  138. commit('SET_ISPASTUREUSE', response.data.list[0].isgroups)
  139. commit('SET_DECIMAL', response.data.list[0].decimal)
  140. commit('SET_DECIMALR', response.data.list[0].decimalr)
  141. GetDataByName({ 'name': 'getUserPCButtons', 'parammaps': { 'username': username, 'pastureid': response.data.list[0].pastureId } }).then(response => {
  142. if(response.data.list !== null){
  143. commit('SET_BUTTONS', response.data.list)
  144. }else{
  145. commit('SET_BUTTONS', [])
  146. }
  147. })
  148. }
  149. })
  150. commit('SET_ROLES', role)
  151. commit('SET_NAME', username)
  152. commit('SET_AVATAR', avatar)
  153. resolve(data)
  154. }).catch(error => {
  155. reject(error)
  156. })
  157. })
  158. },
  159. // user logout
  160. logout({ commit, state }) {
  161. return new Promise((resolve, reject) => {
  162. logout(state.token).then(() => {
  163. commit('SET_BUTTONS', [])
  164. // console.log('-------------', state)
  165. commit('SET_TOKEN', '')
  166. commit('SET_ROLES', [])
  167. Cookies.remove('employename')
  168. Cookies.remove('employeid')
  169. Cookies.remove('pastureid')
  170. Cookies.remove('ispastureuse')
  171. Cookies.remove('decimal')
  172. Cookies.remove('decimalr')
  173. removeToken()
  174. resetRouter()
  175. resolve()
  176. location.reload()
  177. }).catch(error => {
  178. reject(error)
  179. })
  180. })
  181. },
  182. // remove token
  183. resetToken({ commit }) {
  184. return new Promise(resolve => {
  185. commit('SET_TOKEN', '')
  186. commit('SET_ROLES', [])
  187. removeToken()
  188. resolve()
  189. })
  190. }
  191. }
  192. export default {
  193. namespaced: true,
  194. state,
  195. mutations,
  196. actions
  197. }