移动端
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

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