user.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. import Vue from 'vue'
  2. import { login, mobileOrEmailCodeLogin, logout } from '@/api/login.js'
  3. import { setToken, removeToken, setRefreshToken, getToken } from '@/utils/auth';
  4. import {
  5. LOGIN,
  6. MOBILE_LOGIN,
  7. LOGOUT,
  8. SET_USER,
  9. SET_USER_FROM_STORAGE,
  10. SAVE_AGREEMENT_INFORMATION, SAVE_USER_TASK_COMPLETE, SAVE_USER_GRADES, SAVE_USER_RIGHTS
  11. } from '@/store/mutation-types'
  12. import { saveAgreementInformation } from "@/api/operation/interactiveMessage";
  13. import { submitHandler } from "@/utils/autoLogin";
  14. import { getUserTaskComplete, getUserLevelList, getUserRightsList } from "@/api/user";
  15. import { addGrowth } from "@/utils/toCompleteTask";
  16. const state = {
  17. user: {
  18. userId: null,
  19. username: '',
  20. realName: '',
  21. office: {},
  22. department: {},
  23. authorities: [],
  24. },
  25. }
  26. // getters
  27. const getters = {
  28. isLogin: state => {
  29. if (!state.user.userId) {
  30. var userJson = sessionStorage.getItem('user');
  31. if (userJson && userJson != '') {
  32. //state.user = JSON.parse(userJson);
  33. //Vue.set(state.user, 'office', user.office);
  34. }
  35. }
  36. return state.user.userId;
  37. }
  38. }
  39. // actions
  40. const actions = {
  41. [LOGIN]({ commit, dispatch }, user) {
  42. return new Promise((resolve, reject) => {
  43. login(user.account, user.password, user.captcha, user.codeUid, user.token, user.validate, user.captchaToken, user.language).then(response => {
  44. if (response.status === 200) {
  45. Vue.prototype.$Cookies.set('token', response.data.access_token, { expires: Vue.prototype.$moment.add(response.data.expires_in, "second").toDate() });
  46. Vue.prototype.$Cookies.set('userInfo', response.data.userInfo, { expires: Vue.prototype.$moment.add(response.data.expires_in, "second").toDate() });
  47. }
  48. const data = response.data;
  49. user.password = '';
  50. data['user'] = user;
  51. commit(SET_USER, data);
  52. dispatch(SAVE_AGREEMENT_INFORMATION);
  53. resolve()
  54. }).catch(error => {
  55. reject(error)
  56. })
  57. })
  58. },
  59. [MOBILE_LOGIN]({ commit, dispatch }, param) {
  60. return new Promise((resolve, reject) => {
  61. mobileOrEmailCodeLogin(param.mobile, param.checkCode, param.service, param.token, param.language).then(response => {
  62. if (response.status === 200) {
  63. Vue.prototype.$Cookies.set('token', response.data.access_token, { expires: Vue.prototype.$moment.add(response.data.expires_in, "second").toDate() });
  64. Vue.prototype.$Cookies.set('userInfo', response.data.userInfo, { expires: Vue.prototype.$moment.add(response.data.expires_in, "second").toDate() });
  65. }
  66. const data = response.data;
  67. param.password = '';
  68. data['user'] = param;
  69. commit(SET_USER, data);
  70. dispatch(SAVE_AGREEMENT_INFORMATION);
  71. resolve()
  72. }).catch(error => {
  73. reject(error)
  74. })
  75. })
  76. },
  77. [SAVE_AGREEMENT_INFORMATION]({ commit }) {
  78. let params = {
  79. "versionName": "12",
  80. "versionType": "21",
  81. "userId": "34",
  82. "userName": "5",
  83. "userAgent": "46"
  84. }
  85. let token = 'Bearer ' + getToken()
  86. saveAgreementInformation({ agreementInformationEntity: JSON.stringify(params) }, token).then(response => {
  87. }).catch(error => {
  88. })
  89. },
  90. [LOGOUT]({ commit }, meetingId) {
  91. return new Promise((resolve, reject) => {
  92. logout().then(response => {
  93. // commit(SET_USER, {
  94. // user: {
  95. // userId: '',
  96. // account: '',
  97. // realName: '',
  98. // }
  99. // })
  100. if (response.status === "200") {
  101. Vue.prototype.$Cookies.remove('token');
  102. Vue.prototype.$Cookies.remove('userInfo');
  103. }
  104. removeToken();
  105. localStorage.removeItem('user');
  106. localStorage.removeItem('userLevel');
  107. localStorage.removeItem('userRight');
  108. localStorage.removeItem('orderDetail');
  109. localStorage.removeItem('detailID');
  110. localStorage.removeItem('orderId');
  111. resolve()
  112. }).catch(error => {
  113. removeToken();
  114. localStorage.removeItem('user');
  115. localStorage.removeItem('userLevel');
  116. localStorage.removeItem('userRight');
  117. localStorage.removeItem('orderDetail');
  118. localStorage.removeItem('detailID');
  119. localStorage.removeItem('orderId');
  120. reject(error)
  121. })
  122. })
  123. // return null;
  124. },
  125. [SAVE_USER_TASK_COMPLETE]({ commit }) {
  126. return new Promise((resolve, reject) => {
  127. if (!!Vue.prototype.$Cookies.get('token')) {
  128. getUserTaskComplete().then((res) => {
  129. if (res) {
  130. window.localStorage.setItem('userTaskComplete', JSON.stringify(res.data));
  131. resolve()
  132. }
  133. }).catch(error => {
  134. reject(error)
  135. })
  136. }
  137. })
  138. },
  139. [SAVE_USER_GRADES]({ commit }) {
  140. return new Promise((resolve, reject) => {
  141. if (!!Vue.prototype.$Cookies.get('token')) {
  142. getUserLevelList().then((res) => {
  143. if (res) {
  144. window.localStorage.setItem('userLevel', JSON.stringify(res.data));
  145. resolve()
  146. }
  147. }).catch(error => {
  148. reject(error)
  149. })
  150. }
  151. })
  152. },
  153. [SAVE_USER_RIGHTS]({ commit }) {
  154. return new Promise((resolve, reject) => {
  155. if (!!Vue.prototype.$Cookies.get('token')) {
  156. getUserRightsList().then((res) => {
  157. if (res) {
  158. window.localStorage.setItem('userRight', JSON.stringify(res.data));
  159. resolve()
  160. }
  161. }).catch(error => {
  162. reject(error)
  163. })
  164. }
  165. })
  166. },
  167. }
  168. // mutations
  169. const mutations = {
  170. [SET_USER](state, data) {
  171. state.user.account = data.user.account;
  172. var userInfo = JSON.parse(data.userInfo);
  173. Vue.set(state.user, 'office', userInfo.office);
  174. Vue.set(state.user, 'realName', userInfo.realName);
  175. Vue.set(state.user, 'username', userInfo.username);
  176. Vue.set(state.user, "userId", userInfo.id);
  177. Vue.set(state.user, "office", userInfo.office);
  178. Vue.set(state.user, "department", userInfo.department);
  179. Vue.set(state.user, "authorities", userInfo.authorities);
  180. Vue.set(state.user, "umsUser", userInfo.umsUser);
  181. setToken(data.access_token);
  182. setRefreshToken(data['refresh_token']);
  183. localStorage.setItem('user', JSON.stringify(state.user));
  184. addGrowth("point_task_sign")
  185. if (userInfo.umsUser.languageSettingDict) {
  186. window.localStorage.setItem("locale", userInfo.umsUser.languageSettingDict);
  187. window.sessionStorage.setItem("locale", userInfo.umsUser.languageSettingDict);
  188. }
  189. },
  190. [SET_USER_FROM_STORAGE](state, data) {
  191. state.user = data;
  192. // Vue.set(state.user, 'office', data.office);
  193. // Vue.set(state.user, 'realName', data.realName);
  194. }
  195. }
  196. export default {
  197. namespaced: true,
  198. state,
  199. getters,
  200. actions,
  201. mutations
  202. }