index.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. import { log } from '@/utils/base.js'
  2. import { get, post } from '@/utils/request.js'
  3. import storage from "@/utils/storage.js"
  4. import modules from './modules/index.js'
  5. import Vue from 'vue'
  6. import Vuex from 'vuex'
  7. import { getOpenid, login } from "@/common/api.js"
  8. const key = "cems_"
  9. const KEYS = {
  10. AUTH_TOKEN: `${key}token`,
  11. USER_NAME: `${key}username`,
  12. USER_TYPE: `${key}usertype`,
  13. ORG_ID: `${key}orgid`,
  14. DOC_TITLE: `${key}doctitle`,
  15. OPEN_ID: `${key}openid`,
  16. }
  17. const time = 1000 * 60 * 60 * 24 * 3; //有效期3天
  18. Vue.use(Vuex)
  19. const store = new Vuex.Store({
  20. state: {
  21. token: null,
  22. userInfo: {
  23. name: "",
  24. orgId: "",
  25. userType: "",
  26. },
  27. openid: "",
  28. docTitle: "",
  29. tabbarlist: [],
  30. overNum: 0,
  31. },
  32. getters: {
  33. hasLogin(s) {
  34. return s.token != null
  35. }
  36. },
  37. mutations: {
  38. login(state, user) {
  39. state.token = user.auth;
  40. state.userInfo.name = user.authName;
  41. state.userInfo.userType - user.userType;
  42. state.userInfo.orgId = user.enterpriseId;
  43. state.docTitle = user.loginMsg;
  44. storage.put(KEYS.AUTH_TOKEN, state.token, time)
  45. storage.put(KEYS.USER_NAME, state.userInfo.name, time)
  46. storage.put(KEYS.USER_TYPE, state.userInfo.userType, time)
  47. storage.put(KEYS.ORG_ID, state.userInfo.orgId, time)
  48. storage.put(KEYS.DOC_TITLE, state.docTitle, time)
  49. },
  50. logout(state) {
  51. state.openid = null
  52. state.token = null
  53. storage.remove(KEYS.OPEN_ID)
  54. storage.remove(KEYS.AUTH_TOKEN)
  55. storage.remove(KEYS.USER_NAME)
  56. storage.remove(KEYS.USER_TYPE)
  57. storage.remove(KEYS.ORG_ID)
  58. },
  59. setOpenid(state, openid) {
  60. state.openid = openid
  61. storage.put(KEYS.OPEN_ID, state.openid, time);
  62. },
  63. setToken(state, token) {
  64. state.token = token
  65. storage.put(KEYS.AUTH_TOKEN, state.token, time)
  66. },
  67. init(state) {
  68. state.token = storage.get(KEYS.AUTH_TOKEN)
  69. state.userInfo.name = storage.get(KEYS.USER_NAME)
  70. state.userInfo.userType = storage.get(KEYS.USER_TYPE)
  71. state.userInfo.orgId = storage.get(KEYS.ORG_ID)
  72. state.openid = storage.get(KEYS.OPEN_ID)
  73. state.docTitle = storage.get(KEYS.DOC_TITLE)
  74. },
  75. setOverNum(state, num) {
  76. state.overNum = num;
  77. }
  78. },
  79. actions: {
  80. getUserOpenId: async function({ commit, state }) {
  81. return await new Promise((resolve, reject) => {
  82. // #ifdef H5
  83. resolve("");
  84. // #endif
  85. // #ifndef H5
  86. if (state.openid) {
  87. resolve(state.openid)
  88. } else {
  89. resolve("12343")
  90. // uni.login({
  91. // success: (data) => {
  92. // log(`CODE=======>${data.code}`);
  93. // //resolve("12343")
  94. // getOpenid(data.code).then((res) => {
  95. // log(`openid====>`, res)
  96. // if (res.openid) {
  97. // commit("setOpenid", res
  98. // .openid)
  99. // resolve(res.openid);
  100. // }
  101. // }).catch(err => {
  102. // throw new Error(err);
  103. // })
  104. // },
  105. // fail: (err) => {
  106. // console.log(
  107. // 'uni.login 接口调用失败,将无法正常使用开放接口等服务',
  108. // err)
  109. // reject(err)
  110. // }
  111. // })
  112. }
  113. // #endif
  114. })
  115. },
  116. login: async function({ commit, dispatch, state }, data) {
  117. return await new Promise((resolve, reject) => {
  118. if (state.openid) {
  119. dispatch("getTokenByOpenid").then((res) => {
  120. resolve(res)
  121. })
  122. } else {
  123. dispatch("getUserOpenId").then((openid) => {
  124. data.openid = openid;
  125. log(`LOGIN_DATA=======>${JSON.stringify(data)}`)
  126. login(data)
  127. .then((res) => {
  128. if (res.code == 0) {
  129. commit("login", res.restluLis);
  130. resolve(res);
  131. } else {
  132. reject(res);
  133. }
  134. }).catch(err => {
  135. reject(err);
  136. })
  137. })
  138. }
  139. });
  140. },
  141. getTokenByOpenid: async function({ commit, state }) {
  142. return await new Promise((resolve, reject) => {
  143. if (state.openid) {
  144. //todo 通过openid 获取 token
  145. log(`通过openid取token====>${state.openid}`);
  146. /* post("", { openid: state.openid }).then((res) => {
  147. log(`OPENID_TOKEN_DATA=======>${JSON.stringify(res)}`)
  148. if(res){
  149. resolve(res);
  150. commit("setToken", res.token);
  151. }else{
  152. reject(res);
  153. }
  154. }) */
  155. resolve(state.openid);
  156. } else {
  157. log("getTokenByOpenid===>state.openid 为空")
  158. reject();
  159. }
  160. });
  161. }
  162. },
  163. modules: { ...modules }
  164. })
  165. export default store;