移动端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

237 lines
7.2 KiB

  1. import {login, logout, getInfo, smsLogin, chungengUserLogin, chungengFarmerLogin} from '@/api/login';
  2. import { registerOn } from "@/api/register";
  3. import { getToken, setToken, removeToken } from '@/utils/auth'
  4. import { getSystemAttachmentUrl } from '@/api/system/config'
  5. import Cookies from "js-cookie";
  6. const user = {
  7. state: {
  8. token: getToken(),
  9. name: '',
  10. avatar: '',
  11. roles: [],
  12. permissions: [],
  13. bookName: '',
  14. deptName:'',
  15. nickName: '',
  16. baseRoutingUrl: '',
  17. businessLevel: '',
  18. userId:null,
  19. },
  20. mutations: {
  21. SET_TOKEN: (state, token) => {
  22. state.token = token
  23. },
  24. SET_NAME: (state, name) => {
  25. state.name = name
  26. },
  27. SET_USERID: (state, userId) => {
  28. state.userId = userId
  29. },
  30. SET_AVATAR: (state, avatar) => {
  31. state.avatar = avatar
  32. },
  33. SET_ROLES: (state, roles) => {
  34. state.roles = roles
  35. },
  36. SET_PERMISSIONS: (state, permissions) => {
  37. state.permissions = permissions
  38. },
  39. SET_LOGINDEPTID: (state, loginDeptId) => {
  40. state.loginDeptId = loginDeptId
  41. },
  42. SET_LOGINBOOKID: (state, loginBookId) => {
  43. state.loginBookId = loginBookId
  44. },
  45. SET_DEPTNAME: (state, deptName) => {
  46. state.deptName = deptName
  47. },
  48. SET_BOOKNAME: (state, bookName) => {
  49. state.bookName = bookName
  50. },
  51. SET_NICKNAME: (state, nickName) => {
  52. state.nickName = nickName
  53. },
  54. SET_baseRoutingUrl: (state, baseRoutingUrl) => {
  55. state.baseRoutingUrl = baseRoutingUrl
  56. },
  57. SET_businessLevel: (state, businessLevel) => {
  58. state.businessLevel = businessLevel
  59. },
  60. },
  61. actions: {
  62. // 登录
  63. Login({ commit }, userInfo) {
  64. const username = userInfo.username.trim()
  65. const password = userInfo.password
  66. const code = userInfo.code
  67. const uuid = userInfo.uuid
  68. return new Promise((resolve, reject) => {
  69. login(username, password, code, uuid).then(res => {
  70. setToken(res.token)
  71. commit('SET_TOKEN', res.token)
  72. getInfo(res.token).then(response => {
  73. const user = response.user
  74. console.info(user.nickName);
  75. // const avatar = user.avatar == "" ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar;
  76. const avatar = "";
  77. if (response.roles && response.roles.length > 0) { // 验证返回的roles是否是一个非空数组
  78. commit('SET_ROLES', response.roles)
  79. commit('SET_PERMISSIONS', response.permissions)
  80. } else {
  81. commit('SET_ROLES', ['ROLE_DEFAULT'])
  82. }
  83. commit('SET_BOOKNAME', user.bookName)
  84. commit('SET_NAME', user.userName)
  85. commit('SET_USERID', user.userId)
  86. commit('SET_LOGINDEPTID', user.loginDeptId)
  87. commit('SET_LOGINBOOKID', user.loginBookId)
  88. commit('SET_DEPTNAME', user.deptName)
  89. commit('SET_AVATAR', avatar)
  90. commit('SET_NICKNAME', user.nickName);
  91. commit('SET_businessLevel', user.businessLevel);
  92. //commit('SET_businessLevel', 'TEST');
  93. getSystemAttachmentUrl().then((resp) => {
  94. commit('SET_baseRoutingUrl', resp.msg);
  95. });
  96. })
  97. Cookies.set("_Login_url", window.location.href);
  98. resolve()
  99. }).catch(error => {
  100. reject(error)
  101. })
  102. })
  103. },
  104. //短信验证码登录
  105. SmsLogin({ commit }, userInfo) {
  106. const mobile = userInfo.mobile.trim()
  107. const smsCode = userInfo.smsCode
  108. const uuid = userInfo.uuid
  109. return new Promise((resolve, reject) => {
  110. smsLogin(mobile, smsCode, uuid).then(res => {
  111. setToken(res.token)
  112. commit('SET_TOKEN', res.token)
  113. Cookies.set("_Login_url", window.location.href);
  114. resolve()
  115. }).catch(error => {
  116. reject(error)
  117. })
  118. })
  119. },
  120. //注册
  121. Register({ commit }, userInfo) {
  122. const mobile = userInfo.mobile.trim()
  123. const smsCode = userInfo.smsCode
  124. const uuid = userInfo.uuid
  125. const memberName = userInfo.memberName
  126. const idcard = userInfo.idcard
  127. return new Promise((resolve, reject) => {
  128. registerOn(memberName, idcard, mobile, smsCode, uuid).then(res => {
  129. setToken(res.token)
  130. commit('SET_TOKEN', res.token)
  131. Cookies.set("_Login_url", window.location.href);
  132. resolve()
  133. }).catch(error => {
  134. reject(error)
  135. })
  136. })
  137. },
  138. // 获取用户信息
  139. GetInfo({ commit, state }) {
  140. return new Promise((resolve, reject) => {
  141. getInfo(state.token).then(res => {
  142. const user = res.user
  143. // const avatar = user.avatar == "" ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar;
  144. const avatar = "";
  145. if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
  146. commit('SET_ROLES', res.roles)
  147. commit('SET_PERMISSIONS', res.permissions)
  148. } else {
  149. commit('SET_ROLES', ['ROLE_DEFAULT'])
  150. }
  151. commit('SET_BOOKNAME', user.bookName)
  152. commit('SET_NAME', user.userName)
  153. commit('SET_USERID', user.userId)
  154. commit('SET_LOGINDEPTID', user.loginDeptId)
  155. commit('SET_LOGINBOOKID', user.loginBookId)
  156. commit('SET_DEPTNAME', user.deptName)
  157. commit('SET_AVATAR', avatar)
  158. commit('SET_NICKNAME', user.nickName);
  159. commit('SET_businessLevel', user.businessLevel);
  160. //commit('SET_businessLevel', 'TEST');
  161. console.info(user.businessLevel);
  162. getSystemAttachmentUrl().then((resp) => {
  163. commit('SET_baseRoutingUrl', resp.msg);
  164. });
  165. resolve(res)
  166. }).catch(error => {
  167. reject(error)
  168. })
  169. })
  170. },
  171. // 退出系统
  172. LogOut({ commit, state }) {
  173. return new Promise((resolve, reject) => {
  174. logout(state.token).then(() => {
  175. commit('SET_TOKEN', '')
  176. commit('SET_businessLevel', '')
  177. commit('SET_NICKNAME', '')
  178. commit('SET_ROLES', [])
  179. commit('SET_PERMISSIONS', [])
  180. removeToken()
  181. resolve()
  182. }).catch(error => {
  183. reject(error)
  184. })
  185. })
  186. },
  187. // 前端 登出
  188. FedLogOut({ commit }) {
  189. return new Promise(resolve => {
  190. commit('SET_TOKEN', '')
  191. removeToken()
  192. resolve()
  193. })
  194. },
  195. // 更新用户信息
  196. // 春耕App用户登录
  197. ChungengLogin({ commit }, userInfo) {
  198. const code = userInfo.code;
  199. return new Promise((resolve, reject) => {
  200. chungengUserLogin(code).then(res => {
  201. setToken(res.token)
  202. commit('SET_TOKEN', res.token)
  203. Cookies.set("_Login_url", window.location.href);
  204. resolve(res.data)
  205. }).catch(error => {
  206. reject(error)
  207. })
  208. })
  209. },
  210. // 春耕App用户登录
  211. ChungengFarmerLogin({ commit }, userInfo) {
  212. const code = userInfo.code;
  213. return new Promise((resolve, reject) => {
  214. chungengFarmerLogin(code).then(res => {
  215. Cookies.set("user", res.data, { expires: 30 });
  216. resolve(res.data)
  217. }).catch(error => {
  218. reject(error)
  219. })
  220. })
  221. },
  222. }
  223. }
  224. export default user