index.js 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  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)
  50. brandInfo: {},
  51. curMarket: {},
  52. isInit: false, // 当内嵌在小程序中的H5页面,没有接收到小程序数据时,默认显示骨架屏幕
  53. // 无牌车
  54. unlicensedInfo: '',
  55. // 防止用户在无牌车流程中卡死
  56. endlessLoop: ''
  57. },
  58. mutations: {
  59. SET_GROUP_ID( state,payload ) {
  60. uni.setStorageSync('groupId',payload);
  61. state.groupId = payload;
  62. },
  63. SET_KIP_USER_ID( state,payload ) {
  64. uni.setStorageSync('kipUserId',payload);
  65. state.kipUserId = payload;
  66. },
  67. SET_MALL_ID( state,payload ) {
  68. uni.setStorageSync('mallId',payload);
  69. state.mallId = payload;
  70. },
  71. SET_OPENID( state,payload ) {
  72. uni.setStorageSync('openid',payload);
  73. state.openid = payload;
  74. },
  75. SET_WX_ACCESS_TOKEN( state,payload ) {
  76. uni.setStorageSync('wxAccessToken',payload);
  77. state.access_token = payload;
  78. },
  79. SET_WX_REFRESH_TOKEN( state,payload ) {
  80. uni.setStorageSync('wxRefreshToken',payload);
  81. state.refresh_token = payload;
  82. },
  83. SET_MEMBER( state,payload ) {
  84. uni.setStorageSync('member',payload);
  85. state.member = payload;
  86. },
  87. SET_USER_INFO( state,payload ) {
  88. uni.setStorageSync('userInfo',payload);
  89. state.userInfo = payload;
  90. },
  91. SET_MOBILE( state,payload ) {
  92. uni.setStorageSync('mobile',payload);
  93. state.mobile = payload;
  94. },
  95. SET_PARAMS_SCENE( state,payload ) {
  96. uni.setStorageSync('paramsScene',payload);
  97. state.paramsScene = payload;
  98. },
  99. SET_PARK_FEE( state,payload ) {
  100. state.parkFee = payload;
  101. },
  102. SET_MARKET_LIST( state,payload ) {
  103. state.marketList = payload;
  104. },
  105. SET_PROJECT_ID( state,payload ) {
  106. uni.setStorageSync('projectId',payload);
  107. state.projectId = payload;
  108. },
  109. SET_IS_LOGIN( state,payload ) {
  110. state.isLogin = payload;
  111. // uni.setStorageSync('passLogin', payload);
  112. },
  113. SET_ACCESS_TOKEN( state,payload ) {
  114. state.accessToken = payload;
  115. // uni.setStorageSync('accessToken', payload);
  116. uni.setStorageSync('kipAccessToken',payload);
  117. },
  118. setTempParkingOrder( state,payload ) {
  119. state.tempParkingOrder = payload;
  120. },
  121. setTempParkingMoney( state,payload ) {
  122. state.tempParkingMoney = payload;
  123. },
  124. // setbonusCopy
  125. SET_BONUS_COPY( state,payload ) {
  126. state.bonusCopy = payload;
  127. },
  128. SET_CUST_TYPE_ID( state,payload ) {
  129. uni.setStorageSync('custTypeId',payload);
  130. state.custTypeId = payload;
  131. },
  132. SET_SOURCE( state,payload ) {
  133. uni.setStorageSync('source',payload);
  134. state.source = payload;
  135. },
  136. SET_APPID( state,payload ) {
  137. uni.setStorageSync('appId',payload);
  138. state.appId = payload;
  139. },
  140. SET_BRAND_INFO( state,payload ) {
  141. uni.setStorageSync('brandInfo',payload);
  142. state.brandInfo = payload;
  143. },
  144. SET_CUR_MARKET( state,payload ) {
  145. uni.setStorageSync('curMarket',payload);
  146. state.curMarket = payload;
  147. },
  148. SET_IS_INIT( state,payload ) {
  149. // TODO: 与小程序通信时打开
  150. state.isInit = payload;
  151. },
  152. SET_LBS_ID( state,payload ) {
  153. uni.setStorageSync('lbsId',payload);
  154. uni.setStorageSync('mallId',payload);
  155. state.lbsId = payload;
  156. },
  157. SET_BRAND_ID( state,payload ) {
  158. state.brandId = payload;
  159. },
  160. // 无牌车
  161. SET_UNLICENSED_INFO( state,payload ) {
  162. console.log(163, payload);
  163. state.unlicensedInfo = payload;
  164. },
  165. SET_ENDLESS_LOOP( state,payload ) {
  166. state.endlessLoop = payload;
  167. },
  168. },
  169. actions: {
  170. async baseInit( {commit,dispatch},{options,callback} ) {
  171. try {
  172. // console.log(
  173. // 'Encrypt',
  174. // Encrypt(
  175. // // '8a8480487c96d58f017c9b7bab7d0020_8a84811682cf02420182ed5fb8c4000d_8a8485067ce4da2d017ce555e9b20000_ozdsB4yx3I7ez2Ba3DgEmeSR-CFY_15267617473'
  176. // '8aaa81947c6e1ca0017c7201e82d0001#8aaa80cc7d4fc7b3017d55c4d6120000#8aaa80b47c784020017c78b00d060022#ozdsB4yx3I7ez2Ba3DgEmeSR-CFY#13601829387'
  177. // )
  178. // );
  179. console.log(128,options);
  180. // if (!pageId) return;
  181. let {
  182. groupId = '',
  183. mallId = '',
  184. kipUserId = '',
  185. custTypeId = '',
  186. brandId = '',
  187. openid = '',
  188. mobile = '',
  189. lbsId = '',
  190. lbsName = '',
  191. isLogin = false,
  192. accessToken = '',
  193. source = '',
  194. appId = 'wx92c3e55fbef6b2af',
  195. // 无牌车逻辑
  196. unlicensedInfo,
  197. // CRM
  198. // brandInfo = {},
  199. // curMarket = {}
  200. } = options;
  201. console.log({lbsId});
  202. /* {
  203. buildingId: mallId,
  204. projectId: groupId,
  205. openId: openid,
  206. }
  207. * */
  208. // const resp = await parkingLots();
  209. // console.log(171171, resp);
  210. commit('SET_SOURCE',source);
  211. commit('SET_APPID',appId);
  212. // let { groupId, mallId } =
  213. if (!/CRM|PUDONG|JINGAN/.test(source)) {
  214. const groupIdAndMallId = getGroupIdAndMallIdByLsbId(lbsId);
  215. groupId = groupIdAndMallId.groupId;
  216. mallId = groupIdAndMallId.mallId;
  217. // console.log('lbsId', groupIdAndMallId)
  218. commit('SET_LBS_ID',mallId);
  219. } else {
  220. commit('SET_LBS_ID',lbsId);
  221. }
  222. commit('SET_CUST_TYPE_ID',custTypeId);
  223. // 如果为 false,则表示当前用户是从小程序端未登录进入的
  224. if ( !isLogin ) {
  225. // 如果用户未登录,清理原来的数据, 小程序入口不需要处理
  226. }
  227. const href = window.location.href;
  228. commit('SET_GROUP_ID',groupId);
  229. commit('SET_MALL_ID',mallId);
  230. commit('SET_BRAND_ID',brandId);
  231. // console.log('用户扫码进入的', unlicensedInfo, unlicensedInfo?.type);
  232. // 如果是无牌车
  233. if ( unlicensedInfo?.type ) {
  234. // console.log('用户扫码进入的', unlicensedInfo);
  235. commit('SET_UNLICENSED_INFO',unlicensedInfo)
  236. // commit('SET_ENDLESS_LOOP', true)
  237. }
  238. /*if (/dev-|8080|qa-/.test(href)) {
  239. commit('SET_GROUP_ID', groupId);
  240. commit('SET_MALL_ID', mallId);
  241. } else {
  242. commit('SET_GROUP_ID', '8a8884e77cc9e70a017cca1c77e80004');
  243. groupId = '8a8884e77cc9e70a017cca1c77e80004';
  244. mallId = '8a888aed7d0295e5017d029ff1f40000';
  245. commit('SET_MALL_ID', '8a888aed7d0295e5017d029ff1f40000');
  246. }*/
  247. commit('SET_OPENID',openid || uni.getStorageSync('openid'));
  248. if ( isLogin ) {
  249. commit('SET_ACCESS_TOKEN',accessToken);
  250. commit('SET_KIP_USER_ID',kipUserId);
  251. commit('SET_MOBILE',mobile);
  252. dispatch('getUserDetail');
  253. const memberRes = await getVIPIntegral()
  254. // const memberRes = await crmQueryMemberInfo({
  255. // groupId,
  256. // kipUserId,
  257. // mallId,
  258. // });
  259. // 请求 projectId
  260. window.toWXSendMsg({
  261. type: 'getProjectId',
  262. options: {},
  263. });
  264. const marketListRes = await kipAllCities();
  265. if ( memberRes) {
  266. dispatch('getUserDetail');
  267. commit('SET_MEMBER',memberRes);
  268. }
  269. // console.log(929292, marketListRes);
  270. }
  271. callback && callback();
  272. } catch ( e ) {
  273. console.log(e);
  274. callback && callback();
  275. }
  276. },
  277. async getUserDetail( {commit} ) {
  278. const res = await kipGetUserDetail();
  279. commit('SET_USER_INFO',res.data);
  280. // console.log('user_info', res);
  281. },
  282. clearUnlicensed( {state,commit} ) {
  283. commit('SET_UNLICENSED_INFO','');
  284. commit('SET_ENDLESS_LOOP','');
  285. }
  286. },
  287. modules: {
  288. cachedViews,
  289. order,
  290. invoice
  291. },
  292. });
  293. export default store;