index.js 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. import Vue from 'vue';
  2. import Vuex from 'vuex';
  3. import { Encrypt,Decrypt } from '@/utils/crypto';
  4. import { crmQueryMemberInfo } from '@/utils/api-crm-member';
  5. import uni from '@/utils/uniHooks';
  6. import { kipAllCities,kipGetUserDetail,getVIPIntegral } from '@/utils/api-kip';
  7. import cachedViews from './cachedViews';
  8. import order from './order/index';
  9. import invoice from './invoice';
  10. import { lbsDictionary } from '@/common/js/BaseDictionary';
  11. import { getGroupIdAndMallIdByLsbId } from '@/utils';
  12. // import { parkingLots } from '@/utils/api-crm-ms';
  13. Vue.use(Vuex);
  14. function getValue( state,key ) {
  15. let value = state[key];
  16. if ( !value ) {
  17. value = uni.getStorageSync(key);
  18. }
  19. // console.log(1414141414141414, { key, value });
  20. return value;
  21. }
  22. const store = new Vuex.Store({
  23. state: {
  24. // groupId: '8a84819f7c6e260e017c72669bbe01c2',
  25. // kipUserId: '8a888aea82c9ac970182ecfa259a0ddf',
  26. // mallId: '8a8486a37f48f7bd017f4e5bddd10000',
  27. // openid: 'oudWQ5SCDElfn-IQH6eBR5JesOz4',
  28. // appId: 'wx92c3e55fbef6b2af',
  29. lbsId: '',
  30. groupId: '',
  31. kipUserId: '',
  32. mallId: '',
  33. openid: '',
  34. appId: '',
  35. member: {},
  36. userInfo: {},
  37. mobile: '',
  38. custTypeId: 0, // 0 默认版本,1 上海静安 2 上海浦东 3 KIP:默认版本 4: 新的baseUI
  39. paramsScene: {},
  40. parkFee: {},
  41. marketList: [],
  42. projectId: '',
  43. isLogin: '1', // 1: 未登录,2:已登录,3:拒绝登录
  44. accessToken: '', // 用户的token
  45. tempParkingOrder: {},
  46. tempParkingMoney: '',
  47. // 停车缴费
  48. bonusCopy: 0,
  49. source: '', // 访问方:微信小程序:(CRM|KIP|JINGAN|PUDONG|ALIPAY)
  50. brandInfo: {},
  51. curMarket: {},
  52. isInit: false, // 当内嵌在小程序中的H5页面,没有接收到小程序数据时,默认显示骨架屏幕
  53. // 无牌车
  54. unlicensedInfo: '',
  55. // 防止用户在无牌车流程中卡死
  56. endlessLoop: '',
  57. sourceId: '' // 微信:unionId; 支付宝:userId
  58. },
  59. mutations: {
  60. SET_GROUP_ID( state,payload ) {
  61. uni.setStorageSync('groupId',payload);
  62. state.groupId = payload;
  63. },
  64. SET_KIP_USER_ID( state,payload ) {
  65. uni.setStorageSync('kipUserId',payload);
  66. state.kipUserId = payload;
  67. },
  68. SET_MALL_ID( state,payload ) {
  69. uni.setStorageSync('mallId',payload);
  70. state.mallId = payload;
  71. },
  72. SET_OPENID( state,payload ) {
  73. uni.setStorageSync('openid',payload);
  74. state.openid = payload;
  75. },
  76. SET_WX_ACCESS_TOKEN( state,payload ) {
  77. uni.setStorageSync('wxAccessToken',payload);
  78. state.access_token = payload;
  79. },
  80. SET_WX_REFRESH_TOKEN( state,payload ) {
  81. uni.setStorageSync('wxRefreshToken',payload);
  82. state.refresh_token = payload;
  83. },
  84. SET_MEMBER( state,payload ) {
  85. uni.setStorageSync('member',payload);
  86. state.member = payload;
  87. },
  88. SET_USER_INFO( state,payload ) {
  89. uni.setStorageSync('userInfo',payload);
  90. state.userInfo = payload;
  91. },
  92. SET_MOBILE( state,payload ) {
  93. uni.setStorageSync('mobile',payload);
  94. state.mobile = payload;
  95. },
  96. SET_PARAMS_SCENE( state,payload ) {
  97. uni.setStorageSync('paramsScene',payload);
  98. state.paramsScene = payload;
  99. },
  100. SET_PARK_FEE( state,payload ) {
  101. state.parkFee = payload;
  102. },
  103. SET_MARKET_LIST( state,payload ) {
  104. state.marketList = payload;
  105. },
  106. SET_PROJECT_ID( state,payload ) {
  107. uni.setStorageSync('projectId',payload);
  108. state.projectId = payload;
  109. },
  110. SET_IS_LOGIN( state,payload ) {
  111. state.isLogin = payload;
  112. // uni.setStorageSync('passLogin', payload);
  113. },
  114. SET_ACCESS_TOKEN( state,payload ) {
  115. state.accessToken = payload;
  116. // uni.setStorageSync('accessToken', payload);
  117. uni.setStorageSync('kipAccessToken',payload);
  118. },
  119. setTempParkingOrder( state,payload ) {
  120. state.tempParkingOrder = payload;
  121. },
  122. setTempParkingMoney( state,payload ) {
  123. state.tempParkingMoney = payload;
  124. },
  125. // setbonusCopy
  126. SET_BONUS_COPY( state,payload ) {
  127. state.bonusCopy = payload;
  128. },
  129. SET_CUST_TYPE_ID( state,payload ) {
  130. uni.setStorageSync('custTypeId',payload);
  131. state.custTypeId = payload;
  132. },
  133. SET_SOURCE( state,payload ) {
  134. uni.setStorageSync('source',payload);
  135. state.source = payload;
  136. },
  137. SET_APPID( state,payload ) {
  138. uni.setStorageSync('appId',payload);
  139. state.appId = payload;
  140. },
  141. SET_BRAND_INFO( state,payload ) {
  142. uni.setStorageSync('brandInfo',payload);
  143. state.brandInfo = payload;
  144. },
  145. SET_CUR_MARKET( state,payload ) {
  146. uni.setStorageSync('curMarket',payload);
  147. state.curMarket = payload;
  148. },
  149. SET_IS_INIT( state,payload ) {
  150. // TODO: 与小程序通信时打开
  151. state.isInit = payload;
  152. },
  153. SET_LBS_ID( state,payload ) {
  154. uni.setStorageSync('lbsId',payload);
  155. uni.setStorageSync('mallId',payload);
  156. state.lbsId = payload;
  157. },
  158. SET_BRAND_ID( state,payload ) {
  159. state.brandId = payload;
  160. },
  161. // 无牌车
  162. SET_UNLICENSED_INFO( state,payload ) {
  163. console.log(163, payload);
  164. state.unlicensedInfo = payload;
  165. },
  166. SET_ENDLESS_LOOP( state,payload ) {
  167. state.endlessLoop = payload;
  168. },
  169. SET_SOURCE_ID( state,payload ) {
  170. uni.setStorageSync('sourceId', payload);
  171. state.sourceId = payload;
  172. },
  173. },
  174. actions: {
  175. async baseInit( {commit,dispatch},{options,callback} ) {
  176. try {
  177. // console.log(
  178. // 'Encrypt',
  179. // Encrypt(
  180. // // '8a8480487c96d58f017c9b7bab7d0020_8a84811682cf02420182ed5fb8c4000d_8a8485067ce4da2d017ce555e9b20000_ozdsB4yx3I7ez2Ba3DgEmeSR-CFY_15267617473'
  181. // '8aaa81947c6e1ca0017c7201e82d0001#8aaa80cc7d4fc7b3017d55c4d6120000#8aaa80b47c784020017c78b00d060022#ozdsB4yx3I7ez2Ba3DgEmeSR-CFY#13601829387'
  182. // )
  183. // );
  184. console.log(128,options);
  185. // if (!pageId) return;
  186. let {
  187. groupId = '',
  188. mallId = '',
  189. kipUserId = '',
  190. custTypeId = '',
  191. brandId = '',
  192. openid = '',
  193. mobile = '',
  194. lbsId = '',
  195. lbsName = '',
  196. isLogin = false,
  197. accessToken = '',
  198. source = '',
  199. appId = 'wx92c3e55fbef6b2af',
  200. // 无牌车逻辑
  201. unlicensedInfo,
  202. // CRM
  203. // brandInfo = {},
  204. // curMarket = {}
  205. unionId = ''
  206. } = options;
  207. console.log({lbsId});
  208. /* {
  209. buildingId: mallId,
  210. projectId: groupId,
  211. openId: openid,
  212. }
  213. * */
  214. // const resp = await parkingLots();
  215. // console.log(171171, resp);
  216. commit('SET_SOURCE',source);
  217. commit('SET_APPID',appId);
  218. // let { groupId, mallId } =
  219. if (!/CRM|PUDONG|JINGAN/.test(source)) {
  220. const groupIdAndMallId = getGroupIdAndMallIdByLsbId(lbsId);
  221. groupId = groupIdAndMallId.groupId;
  222. mallId = groupIdAndMallId.mallId;
  223. // console.log('lbsId', groupIdAndMallId)
  224. commit('SET_LBS_ID',mallId);
  225. } else {
  226. commit('SET_LBS_ID',lbsId);
  227. }
  228. if(unionId) {
  229. commit('SET_SOURCE_ID',unionId);
  230. }
  231. commit('SET_CUST_TYPE_ID',custTypeId);
  232. // 如果为 false,则表示当前用户是从小程序端未登录进入的
  233. if ( !isLogin ) {
  234. // 如果用户未登录,清理原来的数据, 小程序入口不需要处理
  235. }
  236. const href = window.location.href;
  237. commit('SET_GROUP_ID',groupId);
  238. commit('SET_MALL_ID',mallId);
  239. commit('SET_BRAND_ID',brandId);
  240. // console.log('用户扫码进入的', unlicensedInfo, unlicensedInfo?.type);
  241. // 如果是无牌车
  242. if ( unlicensedInfo?.type ) {
  243. // console.log('用户扫码进入的', unlicensedInfo);
  244. commit('SET_UNLICENSED_INFO',unlicensedInfo)
  245. // commit('SET_ENDLESS_LOOP', true)
  246. }
  247. /*if (/dev-|8080|qa-/.test(href)) {
  248. commit('SET_GROUP_ID', groupId);
  249. commit('SET_MALL_ID', mallId);
  250. } else {
  251. commit('SET_GROUP_ID', '8a8884e77cc9e70a017cca1c77e80004');
  252. groupId = '8a8884e77cc9e70a017cca1c77e80004';
  253. mallId = '8a888aed7d0295e5017d029ff1f40000';
  254. commit('SET_MALL_ID', '8a888aed7d0295e5017d029ff1f40000');
  255. }*/
  256. commit('SET_OPENID',openid || uni.getStorageSync('openid'));
  257. if ( isLogin ) {
  258. commit('SET_ACCESS_TOKEN',accessToken);
  259. commit('SET_KIP_USER_ID',kipUserId);
  260. commit('SET_MOBILE',mobile);
  261. dispatch('getUserDetail');
  262. const memberRes = await getVIPIntegral()
  263. // const memberRes = await crmQueryMemberInfo({
  264. // groupId,
  265. // kipUserId,
  266. // mallId,
  267. // });
  268. // 请求 projectId
  269. window.toWXSendMsg({
  270. type: 'getProjectId',
  271. options: {},
  272. });
  273. const marketListRes = await kipAllCities();
  274. if ( memberRes) {
  275. dispatch('getUserDetail');
  276. commit('SET_MEMBER',memberRes);
  277. }
  278. // console.log(929292, marketListRes);
  279. }
  280. callback && callback();
  281. } catch ( e ) {
  282. console.log(e);
  283. callback && callback();
  284. }
  285. },
  286. async getUserDetail( {commit} ) {
  287. const res = await kipGetUserDetail();
  288. commit('SET_USER_INFO',res.data);
  289. // console.log('user_info', res);
  290. },
  291. clearUnlicensed( {state,commit} ) {
  292. commit('SET_UNLICENSED_INFO','');
  293. commit('SET_ENDLESS_LOOP','');
  294. }
  295. },
  296. modules: {
  297. cachedViews,
  298. order,
  299. invoice
  300. },
  301. });
  302. export default store;