index.js 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. import api from "@/api/api"
  4. import MinCache from '@/common/util/MinCache.js'
  5. import {
  6. ACCESS_TOKEN,
  7. USER_NAME,
  8. USER_INFO
  9. } from "@/common/util/constants"
  10. Vue.use(Vuex)
  11. export default new Vuex.Store({
  12. state: {
  13. token: '',
  14. userid: '',
  15. username: '',
  16. realname: '',
  17. welcome: '',
  18. avatar: ''
  19. },
  20. mutations: {
  21. SET_TOKEN: (state, token) => {
  22. state.token = token
  23. },
  24. SET_NAME: (state, {
  25. username,
  26. realname,
  27. welcome
  28. }) => {
  29. state.username = username
  30. state.realname = realname
  31. state.welcome = welcome
  32. },
  33. SET_AVATAR: (state, avatar) => {
  34. state.avatar = avatar
  35. }
  36. },
  37. actions: {
  38. // 登录
  39. mLogin({
  40. commit
  41. }, userInfo) {
  42. return new Promise((resolve, reject) => {
  43. var username = userInfo.username;
  44. api.login(userInfo).then(response => {
  45. if (response.data.state == 200) {
  46. const result = response.data
  47. const userInfo = response.data.data
  48. commit('SET_TOKEN', "")
  49. commit('SET_AVATAR', null)
  50. commit('SET_NAME', userInfo)
  51. let params = {
  52. login_state: userInfo,
  53. client_id: 'ibps'
  54. }
  55. //授权第二步
  56. api.authorize(params).then(response2 => {
  57. if (response.data.state == 200) {
  58. let auparams = {
  59. authorize_code: response2.data.data,
  60. client_id: 'ibps',
  61. client_secret: '58b65297-3467-0859-8337-8cbaf81ef68a',
  62. grant_type: 'authorization_code'
  63. }
  64. //授权第三步
  65. api.authentication(auparams).then(res => {
  66. if (res.data.state == 200) {
  67. //将返回的token给到
  68. uni.setStorageSync(ACCESS_TOKEN, res
  69. .data.data.access_token);
  70. uni.setStorageSync("refresh_token", res
  71. .data.data.refresh_token);
  72. //获取用户信息
  73. api.context(username).then(res => {
  74. if (res.data.state == 200) {
  75. let info = res.data
  76. .data
  77. uni.setStorageSync(
  78. USER_INFO, info
  79. )
  80. if (info.user.id ==
  81. '1100364672239927296' ||
  82. info.user.id ==
  83. '1100468240921919488'
  84. ) {
  85. uni.setStorageSync(
  86. 'administrator',
  87. true)
  88. resolve(res)
  89. return
  90. }
  91. if (info.org.id !=
  92. '1041786072788369408'
  93. ) {
  94. uni.showToast({
  95. title: '该账户不是客户账号',
  96. icon: 'none',
  97. duration: 2000
  98. })
  99. reject(res)
  100. return
  101. }
  102. uni.setStorageSync(
  103. 'administrator',
  104. false)
  105. resolve(res)
  106. } else {
  107. reject(res)
  108. }
  109. })
  110. } else {
  111. reject(res)
  112. }
  113. })
  114. } else {
  115. reject(response2)
  116. }
  117. })
  118. } else {
  119. uni.showToast({
  120. title: response.data.cause,
  121. icon: 'none',
  122. duration: 2000
  123. })
  124. reject(response)
  125. }
  126. }).catch(error => {
  127. reject(error)
  128. })
  129. })
  130. },
  131. // 注册并登录
  132. mSign({
  133. commit
  134. }, userInfo) {
  135. return new Promise((resolve, reject) => {
  136. api.sign(userInfo).then(response => {
  137. if (response.data.state == 200) {
  138. const result = response.data
  139. const userInfo = response.data.data
  140. //uni.setStorageSync(ACCESS_TOKEN,"ashdgajd");
  141. uni.setStorageSync(USER_INFO, userInfo);
  142. commit('SET_TOKEN', "ashdgajd")
  143. commit('SET_AVATAR', userInfo.id)
  144. commit('SET_NAME', userInfo.username)
  145. //授权第二步
  146. let params = {};
  147. params.login_state = userInfo.data;
  148. params.client_id = "ibps";
  149. api.authorize(params).then(response2 => {
  150. if (response.data.state == 200) {
  151. let auparams = {};
  152. auparams.authorize_code = response2.data.data;
  153. auparams.client_id = "ibps";
  154. //写死的client_secret
  155. auparams.client_secret =
  156. "58b65297-3467-0859-8337-8cbaf81ef68a"
  157. auparams.grant_type = "authorization_code"
  158. //授权第三步
  159. api.authentication(auparams).then(res => {
  160. if (res.data.state == 200) {
  161. //将返回的token给到
  162. uni.setStorageSync(ACCESS_TOKEN, res
  163. .data.data.access_token);
  164. uni.setStorageSync("refresh_token", res
  165. .data.data.refresh_token);
  166. resolve(response)
  167. } else {
  168. resolve(response)
  169. }
  170. })
  171. } else {
  172. resolve(response)
  173. }
  174. })
  175. } else {
  176. resolve(response)
  177. }
  178. }).catch(error => {
  179. reject(error)
  180. })
  181. })
  182. },
  183. //手机号登录
  184. PhoneLogin({
  185. commit
  186. }, userInfo) {
  187. return new Promise((resolve, reject) => {
  188. api.phoneNoLogin(userInfo).then(response => {
  189. if (response.data.state == 200) {
  190. const result = response.data
  191. const userInfo = response.data.data
  192. uni.setStorageSync(ACCESS_TOKEN, "ashdgajd");
  193. uni.setStorageSync(USER_INFO, userInfo);
  194. commit('SET_TOKEN', "")
  195. commit('SET_AVATAR', userInfo.id)
  196. commit('SET_NAME', userInfo.username)
  197. //授权第二步
  198. let params = {};
  199. params.login_state = userInfo.data;
  200. params.client_id = "ibps";
  201. api.authorize(params).then(response2 => {
  202. if (response.data.state == 200) {
  203. let auparams = {};
  204. auparams.authorize_code = response2.data.data;
  205. auparams.client_id = "ibps";
  206. //写死的client_secret
  207. auparams.client_secret =
  208. "58b65297-3467-0859-8337-8cbaf81ef68a"
  209. auparams.grant_type = "authorization_code"
  210. //授权第三步
  211. api.authentication(auparams).then(res => {
  212. if (res.data.state == 200) {
  213. //将返回的token给到
  214. uni.setStorageSync(ACCESS_TOKEN, res
  215. .data.data.access_token);
  216. uni.setStorageSync("refresh_token", res
  217. .data.data.refresh_token);
  218. resolve(res)
  219. } else {
  220. resolve(res)
  221. }
  222. })
  223. } else {
  224. resolve(response2)
  225. }
  226. })
  227. } else {
  228. reject(response)
  229. }
  230. }).catch(error => {
  231. reject(error)
  232. })
  233. })
  234. },
  235. // 登出
  236. Logout({
  237. commit,
  238. state
  239. }) {
  240. return new Promise((resolve) => {
  241. let logoutToken = state.token;
  242. commit('SET_TOKEN', '')
  243. uni.removeStorageSync(ACCESS_TOKEN)
  244. api.logout(logoutToken).then(() => {
  245. resolve()
  246. }).catch(() => {
  247. resolve()
  248. })
  249. })
  250. },
  251. },
  252. getters: {
  253. token: state => state.token,
  254. username: state => {
  255. state.username = uni.getStorageSync(USER_INFO).username;
  256. return state.username
  257. },
  258. nickname: state => {
  259. state.companyname = uni.getStorageSync(USER_INFO).companyname;
  260. return state.companyname
  261. },
  262. avatar: state => {
  263. state.userid = uni.getStorageSync(USER_INFO).avatar;
  264. return state.user.avatar
  265. },
  266. userid: state => {
  267. state.userid = uni.getStorageSync(USER_INFO).id;
  268. return state.userid
  269. },
  270. userinfo: state => {
  271. state.info = uni.getStorageSync(USER_INFO);
  272. return state.info
  273. },
  274. },
  275. })