@conecli/cone-render 0.9.1-shop2.16 → 0.9.1-shop2.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/api/index.ts +1 -1
  2. package/dist/common/const.ts +1 -1
  3. package/dist/common/environmentType.ts +1 -1
  4. package/dist/common/index.h5.ts +1 -1
  5. package/dist/common/index.jd.ts +1 -1
  6. package/dist/common/index.ts +1 -1
  7. package/dist/common/index.weapp.ts +1 -1
  8. package/dist/components/decorate/DecorateFloorModule/index.module.scss +11 -0
  9. package/dist/components/decorate/DecorateFloorModule/index.tsx +1 -1
  10. package/dist/components/decorate/EmptyFloorModule/index.tsx +1 -1
  11. package/dist/components/decorate/PlaceHolder/index.tsx +1 -1
  12. package/dist/components/floorItem.tsx +1 -1
  13. package/dist/interface/common.ts +1 -1
  14. package/dist/interface/component.ts +1 -1
  15. package/dist/interface/jumpEventReport.ts +1 -1
  16. package/dist/interface/service.ts +1 -1
  17. package/dist/jumpEventReport/base.ts +1 -1
  18. package/dist/jumpEventReport/const.ts +1 -1
  19. package/dist/jumpEventReport/index.jd.ts +1 -1
  20. package/dist/jumpEventReport/index.weapp.ts +1 -1
  21. package/dist/jumpEventReport/jdJumpJdApp.ts +1 -1
  22. package/dist/jumpEventReport/jumpUrlConfig/base.ts +1 -1
  23. package/dist/jumpEventReport/logEventConfig.ts +1 -1
  24. package/dist/jumpEventReport/web.base.ts +1 -1
  25. package/dist/jumpEventReport/web.jd.ts +1 -1
  26. package/dist/jumpEventReport/web.tjm.ts +1 -1
  27. package/dist/modules/ContainerFloorList/index.h5.module.scss +1 -1
  28. package/dist/modules/ContainerFloorList/index.h5.tsx +1 -1
  29. package/dist/open/api/device.ts +1 -1
  30. package/dist/sass/base.scss +45 -0
  31. package/dist/service/requestServer.ts +1 -1
  32. package/dist/utils/connectNativeJsBridge.ts +1 -1
  33. package/dist/utils/h5Utils.ts +1 -1
  34. package/dist/utils/index.h5.ts +1 -1
  35. package/dist/utils/index.ts +1 -1
  36. package/dist/utils/index.weapp.ts +1 -1
  37. package/dist/utils/utils.ts +1 -1
  38. package/package.json +1 -1
@@ -1 +1 @@
1
- import Taro from "@tarojs/taro";
2
1
  WXAPP_LOGIN,
3
2
  WXAPP_BIZ,
4
3
  WXAPP_USER_INFO,
5
4
  WXAPP_NAVIGATOR,
6
5
  WXAPP_REPORT_GDT,
7
6
  WXAPP_PARAMS_SIGN,
8
7
  WXAPP_FINGER_REPORT,
9
8
  WXAPP_REPORT_MANAGE,
10
9
  WXAPP_SUBS_GUIDER,
11
10
  BUSINESS_TYPE,
12
11
  SHOP_MENU_ID_TYPE,
13
12
  SHOP_MENU_ID_NAME,
14
13
  SECTION_HOME_TAB_NAME_TYPE,
15
14
  SECTION_HOME_TAB_TYPE,
16
15
  TaroEventType,
17
16
  WX_BUSINESS_TYPE,
18
17
  WXAPP_BIZ_KEY,
19
18
  WXAPP_BIZ_SHOP_LIGHT_KEY,
20
19
  getSystemInfos,
21
20
  getTaroStorageKeyValue,
22
21
  getWxAppCookieStr,
23
22
  objectToUrlEncode,
24
23
  loginState: jdUserLoginState,
25
24
  cookiesStr: "",
26
25
  userInfo: userPinKey,
27
26
  pageInfo: {
28
27
  wxBusinessType: WX_BUSINESS_TYPE.SHOP,
29
28
  address: "",
30
29
  addressCommaStr: "",
31
30
  un_area: "",
32
31
  vapptype: "1",
33
32
  pageType: "home",
34
33
  dataType: BUSINESS_TYPE.ONLINE,
35
34
  floorExposureInfo: {},
36
35
  floorVideInfo: {},
37
36
  productVideInfo: {},
38
37
  tabsLoadAllDataInfo: {
39
38
  [SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_WELL_CHOSEN]]:
40
39
  false,
41
40
  [SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.CLASSIFY]]: true,
42
41
  },
43
42
  updateShopInfosAllState: false,
44
43
  isVipShop: false,
45
44
  isJdShowNativeImmersivePlayer: false,
46
45
  ...shopConfig,
47
46
  pageScrollTop: 0,
48
47
  pageIdxHeightInfo: {
49
48
  list: [],
50
49
  },
51
50
  shopNavBarHeight: 0,
52
51
  },
53
52
  defaultQueryLogInfo: {
54
53
  sourceType: "JDshop",
55
54
  sourceValue: "",
56
55
  moduleId: "none",
57
56
  entrance: "none",
58
57
  },
59
58
  originQueryInfo: {},
60
59
  sysInfo: {
61
60
  windowWidth: 0,
62
61
  windowHeight: 0,
63
62
  netWorkType: "4g",
64
63
  jdBottomBarHeight: 0,
65
64
  jdNativeHeaderHeight: 0,
66
65
  },
67
66
  queryInfo: {},
68
67
  shopInfo: {},
69
68
  openAppData: {},
70
69
  public info: CommonInterFace.BaseConfigInfo;
71
70
  public config: {
72
71
  [key: string]: any;
73
72
  };
74
73
  public lazyContainer: CommonInterFace.lazyContainer;
75
74
  public rootEleNode: HTMLElement | null;
76
75
  public miniApplogUtil: CommonInterFace.MiniApplogUtil;
77
76
  public miniAppLogInstance: CommonInterFace.MiniAppLog | null;
78
77
  public checkStatusAndLoginPromise: object | null;
79
78
  public wxAppLoginInstance: CommonInterFace.WxAppLogin;
80
79
  public wxAppBizInstance: CommonInterFace.WxAppUserInfo;
81
80
  public wxAppUserInfoInstance: CommonInterFace.WxAppUserInfo;
82
81
  public wxAppReportManageInstance: CommonInterFace.wxAppReportManage;
83
82
  public wxAppReportGDTInstance: CommonInterFace.WxAppReportGDT;
84
83
  public wxAppNavigatorInstance: CommonInterFace.WxAppNavigator;
85
84
  public wxAppParamsSignInstance: CommonInterFace.wxAppParamsSign;
86
85
  public wxAppFingerReportInstance: CommonInterFace.wxAppParamsSign;
87
86
  public wxAppSubsGuider: CommonInterFace.wxAppParamsSign;
88
87
  constructor(opt) {
89
88
  this.info = this._getConfig(opt);
90
89
  this.config = {};
91
90
  this.lazyContainer = {
92
91
  [SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_WELL_CHOSEN]]: {
93
92
  appLazyContainerList: [],
94
93
  appLazyFinishContainerList: [],
95
94
  },
96
95
  [SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_PROMOTION]]: {
97
96
  appLazyContainerList: [],
98
97
  appLazyFinishContainerList: [],
99
98
  },
100
99
  };
101
100
  this.rootEleNode = null;
102
101
  this.miniApplogUtil = MiniAppLogUtil;
103
102
  this.miniAppLogInstance = null;
104
103
  this.checkStatusAndLoginPromise = null;
105
104
  this.wxAppLoginInstance = WXAPP_LOGIN;
106
105
  this.wxAppBizInstance = WXAPP_BIZ;
107
106
  this.wxAppUserInfoInstance = WXAPP_USER_INFO;
108
107
  this.wxAppReportManageInstance = WXAPP_REPORT_MANAGE;
109
108
  this.wxAppReportGDTInstance = WXAPP_REPORT_GDT;
110
109
  this.wxAppNavigatorInstance = WXAPP_NAVIGATOR;
111
110
  this.wxAppParamsSignInstance = WXAPP_PARAMS_SIGN;
112
111
  this.wxAppFingerReportInstance = WXAPP_FINGER_REPORT
113
112
  ? new WXAPP_FINGER_REPORT()
114
113
  : {};
115
114
  this.wxAppSubsGuider = WXAPP_SUBS_GUIDER;
116
115
  }
117
116
  _getConfig(opt) {
118
117
  return Object.assign({}, DefaultConfig, opt);
119
118
  }
120
119
 
121
120
  taskTimeoutPromise(callBack, timeout = 2000) {
122
121
  return new Promise((resolve) => {
123
122
  setTimeout(() => {
124
123
  const getCallBackRes = typeof callBack === "function" && callBack();
125
124
  return resolve(getCallBackRes || false);
126
125
  }, timeout);
127
126
  });
128
127
  }
129
128
 
130
129
  updateBusinessDomainAndApi(domain, api) {
131
130
  console.log("=================>", "updateBusinessDomainAndApi");
132
131
  }
133
132
 
134
133
  getFullScreenHeight(systemInfo) {
135
134
  const { screenHeight, statusBarHeight, isAndroid } = systemInfo;
136
135
  let result = screenHeight;
137
136
  if (statusBarHeight > 20 && isAndroid) {
138
137
  result = screenHeight + statusBarHeight;
139
138
  }
140
139
  return result;
141
140
  }
142
141
 
143
142
  getTabBarHeight(systemInfo) {
144
143
  const { statusBarHeight, isAndroid, isIOS } = systemInfo;
145
144
  let result = 50;
146
145
  if (statusBarHeight > 20) {
147
146
  if (isIOS) {
148
147
  result = 84;
149
148
  } else if (isAndroid) {
150
149
  result = 53;
151
150
  }
152
151
  }
153
152
  return result;
154
153
  }
155
154
 
156
155
  getSystemInfo() {
157
156
  const info: UtilsInterFace.taroGetSystemInfoSyncRes =
158
157
  getSystemInfos() || {};
159
158
  const actualNavBarHeight =
160
159
  (info?.navBarHeight || 0) + (info?.navBarExtendHeight || 0);
161
160
  const headerHeight = actualNavBarHeight + (info?.statusBarHeight || 0);
162
161
  const fullScreenHeight = this.getFullScreenHeight(info);
163
162
  const tabBarHeight = this.getTabBarHeight(info);
164
163
  const safeContentHeight = fullScreenHeight - headerHeight;
165
164
  this.info.sysInfo = {
166
165
  ...this.info.sysInfo,
167
166
  ...info,
168
167
  actualNavBarHeight,
169
168
  headerHeight,
170
169
  fullScreenHeight,
171
170
  tabBarHeight,
172
171
  safeContentHeight,
173
172
  };
174
173
  if (this.info.sysInfo["hostVersionName"]) {
175
174
  this.info.sysInfo["hostAppVersion"] = Number(
176
175
  this.info.sysInfo["hostVersionName"].replace(/\./g, "")
177
176
  );
178
177
  }
179
178
  this.info.sysInfo["wifiVideoAutoPlay"] = false;
180
179
  this.getNetWorkType();
181
180
  console.log("获取系统信息", this.info.sysInfo);
182
181
  }
183
182
  async updateMPaasConfig() {}
184
183
 
185
184
  getNetWorkType() {
186
185
  Taro.getNetworkType().then((getRes) => {
187
186
  getRes &&
188
187
  getRes.networkType &&
189
188
  (this.info.sysInfo["netWorkType"] = getRes.networkType);
190
189
  });
191
190
  }
192
191
 
193
192
  checkStatusAndLogin(options = {}) {
194
193
  this.checkStatusAndLoginPromise = new Promise((resolve, reject) => {
195
194
  console.log(
196
195
  "微信小程序登录状态及获取cookie状态的promise,之前登录状态",
197
196
  this.info.loginState
198
197
  );
199
198
  this.toLogin(options)
200
199
  .then((res) => {
201
200
  console.log("微信小程序登录状态结果,成功", res);
202
201
  this.info.loginState = true;
203
202
  resolve(res);
204
203
  })
205
204
  .catch((err) => {
206
205
  console.log("微信小程序登录异常状态结果", err);
207
206
  this.doLogin(options)
208
207
  .then((res2) => {
209
208
  console.log("微信小程序wxDoLogin强制登陆成功:", res2);
210
209
  this.info.loginState = true;
211
210
  resolve(res2);
212
211
  })
213
212
  .catch((err2) => {
214
213
  console.log("微信小程序wxDoLogin强制登陆失败:", err2);
215
214
  this.checkStatusAndLoginPromise = null;
216
215
  reject(err2);
217
216
  });
218
217
  });
219
218
  });
220
219
  return this.checkStatusAndLoginPromise;
221
220
  }
222
221
 
223
222
  checkJdStatusAndLogin(
224
223
  options = {
225
224
  loginColor: {
226
225
  biz: WXAPP_BIZ_SHOP_LIGHT_KEY,
227
226
  dpin: 0,
228
227
  },
229
228
  }
230
229
  ) {
231
230
  return this.checkStatusAndLogin(options);
232
231
  }
233
232
 
234
233
  toLogin(options = {}): Promise<any> {
235
234
  return this.wxAppLoginInstance
236
235
  .getLoginPromise({
237
236
  mode: "silent",
238
237
  loginColor: {
239
238
  biz: WXAPP_BIZ_KEY,
240
239
  dpin: 1,
241
240
  },
242
241
  ...options,
243
242
  })
244
243
  .then((res) => {
245
244
  console.log("微信app登录返回信息,微信侧返回code为0表示成功", res);
246
245
  setTimeout(() => {
247
246
  console.log(
248
247
  "微信app登录返回成功后,后台会写入cookie,有延迟,这里延迟500ms去获取最新cookie"
249
248
  );
250
249
  this.getLoginCookie(`${Date.now()}`);
251
250
  }, 500);
252
251
  })
253
252
  .catch((err) => {
254
253
  console.log("微信app登录异常返回信息,也获取cookie", err);
255
254
  this.getLoginCookie(`${Date.now()}`);
256
255
  });
257
256
  }
258
257
 
259
258
  doLogin(options = {}) {
260
259
  const getParams = {
261
260
  loginColor: {
262
261
  biz: WXAPP_BIZ_KEY,
263
262
  dpin: 1,
264
263
  },
265
264
  ...options,
266
265
  };
267
266
  if (isPublishToWxapp) {
268
267
  getParams[
269
268
  "returnUrl"
270
269
  ] = `/pages/shopx/pages/index/index?${objectToUrlEncode({
271
270
  ...this.info.originQueryInfo,
272
271
  loadShopxType: "redirect",
273
272
  })}`;
274
273
  }
275
274
  return this.wxAppLoginInstance.doLogin(getParams).then((res) => {
276
275
  console.log("微信小程序强制登录返回信息,微信侧返回code为0表示成功", res);
277
276
  setTimeout(() => {
278
277
  console.log(
279
278
  "微信强制登录后,后台会写入cookie,有延迟,这里延迟500ms去获取最新cookie"
280
279
  );
281
280
  this.getLoginCookie(`${Date.now()}`);
282
281
  }, 500);
283
282
  return res;
284
283
  });
285
284
  }
286
285
 
287
286
  doLoginForJdPin(options = {}) {
288
287
  return this.doLogin({
289
288
  loginColor: {
290
289
  biz: WXAPP_BIZ_SHOP_LIGHT_KEY,
291
290
  dpin: 0,
292
291
  },
293
292
  ...options,
294
293
  });
295
294
  }
296
295
 
297
296
  getLoginCookie(updateKey = "wxapp") {
298
297
  return new Promise((resolve) => {
299
298
  console.log("开始获取更新wxapp中的cookie信息", updateKey);
300
299
  if (
301
300
  this.config.wqCookie &&
302
301
  this.config.wqCookieStr &&
303
302
  this.config.getWqCookieKey === updateKey
304
303
  ) {
305
304
  console.log("已有存储wxapp中的cookie信息,直接返回", this.config);
306
305
  resolve({
307
306
  wqCookie: this.config.wqCookie,
308
307
  wqCookieStr: this.config.wqCookieStr,
309
308
  });
310
309
  } else {
311
310
  if (isPublishToWxapp) {
312
311
  const getWxappCookieObj = getTaroStorageKeyValue("cookies") || null;
313
312
  if (getWxappCookieObj) {
314
313
  const getCookieObj = getWxappCookieObj["_data"];
315
314
  const { wqCookie, wqCookieStr } = getWxAppCookieStr(getCookieObj);
316
315
  const {
317
316
  pin = "",
318
317
  visitkey = "-1",
319
318
  wq_unionid = "",
320
319
  wxapp_openid = "",
321
320
  } = wqCookie;
322
321
  this.info.loginState = true;
323
322
  this.info.userInfo.wqCookie = wqCookieStr;
324
323
  this.info.userInfo.wqVisitkey = visitkey;
325
324
  console.log("获取用户完整cookie信息", getCookieObj);
326
325
  const getUserAddress = this.wxAppUserInfoInstance.getAddress();
327
326
  console.log("获取微信用户地址信息", getUserAddress);
328
327
  if (getUserAddress) {
329
328
  this.info.pageInfo.address = getUserAddress?.areaId;
330
329
  this.info.pageInfo.addressCommaStr = this.info.pageInfo.address
331
330
  ? this.info.pageInfo.address.replace(/_/g, ",")
332
331
  : "";
333
332
  this.info.pageInfo.un_area = this.info.pageInfo.address;
334
333
  Taro.eventCenter.trigger(
335
334
  TaroEventType.USER_AREA_UPDATE,
336
335
  this.info.pageInfo.address
337
336
  );
338
337
  }
339
338
  if (this.miniAppLogInstance) {
340
339
  this.miniAppLogInstance.set({
341
340
  account: pin,
342
341
  unionid: wq_unionid,
343
342
  openid: wxapp_openid,
344
343
  });
345
344
  }
346
345
  this.config.wqCookie = wqCookie;
347
346
  this.config.wqCookieStr = wqCookieStr;
348
347
  this.config.getWqCookieKey = updateKey;
349
348
  console.log("解析wxapp中的cookie信息成功,返回后存储", this.config);
350
349
  resolve({
351
350
  wqCookie,
352
351
  wqCookieStr,
353
352
  });
354
353
  } else {
355
354
  console.log(
356
355
  "解析wxapp中的cookie信息异常,返回异常结果",
357
356
  this.config
358
357
  );
359
358
  resolve({
360
359
  wqCookie: false,
361
360
  wqCookieStr: false,
362
361
  });
363
362
  }
364
363
  } else {
365
364
  resolve({
366
365
  wqCookie: false,
367
366
  wqCookieStr: false,
368
367
  });
369
368
  }
370
369
  }
371
370
  });
372
371
  }
373
372
 
374
373
 
375
374
  checkLoginStatus() {
376
375
  return this.getLoginCookie();
377
376
  }
378
377
 
379
378
  getAddressCachePromise = () => {
380
379
  return Promise.reject("该方法只在APP内适用");
381
380
  };
382
381
 
383
382
  updatePageAndLogInfo(updateQuery = {}) {
384
383
  const createUpdateQueryInfo: {
385
384
  query: {
386
385
  shopId?: string | number;
387
386
  venderId?: string | number;
388
387
  };
389
388
  updateShopInfoState: boolean;
390
389
  } = Object.assign(
391
390
  {},
392
391
  {
393
392
  query: {},
394
393
  updateShopInfoState: false,
395
394
  },
396
395
  updateQuery
397
396
  );
398
397
  console.log(
399
398
  "获取当前下发的店铺查询参数",
400
399
  updateQuery,
401
400
  "获取之前保存的shopInfo店铺查询参数",
402
401
  this.info?.shopInfo
403
402
  );
404
403
  const { query, updateShopInfoState } = createUpdateQueryInfo;
405
404
  const { shopId, venderId } = query;
406
405
  if (updateShopInfoState) {
407
406
  this.info.queryInfo = {
408
407
  ...this.info.queryInfo,
409
408
  ...query,
410
409
  };
411
410
  if (shopId && venderId) {
412
411
  this.info.shopInfo = {
413
412
  shopId: `${shopId}`,
414
413
  venderId: `${venderId}`,
415
414
  };
416
415
  }
417
416
  } else {
418
417
  this.info.queryInfo = {
419
418
  ...query,
420
419
  };
421
420
  this.info.originQueryInfo = {
422
421
  ...query,
423
422
  };
424
423
  if (
425
424
  this.info.shopInfo?.shopId &&
426
425
  this.info.shopInfo?.venderId &&
427
426
  (this.info.shopInfo.shopId == shopId ||
428
427
  this.info.shopInfo.venderId == venderId)
429
428
  ) {
430
429
  this.info.queryInfo.shopId = this.info.shopInfo.shopId;
431
430
  this.info.queryInfo.venderId = this.info.shopInfo.venderId;
432
431
  console.log(
433
432
  "当前存储的店铺shopId和venderId与下发的店铺信息shopId或者venderId为同一个,补充shopId或者venderId查询参数",
434
433
  this.info.queryInfo
435
434
  );
436
435
  }
437
436
  }
438
437
  this.info.queryInfo["shopId"] &&
439
438
  (this.info.queryInfo["shopId"] = `${this.info.queryInfo["shopId"]}`);
440
439
  this.info.queryInfo["venderId"] &&
441
440
  (this.info.queryInfo["venderId"] = `${this.info.queryInfo["venderId"]}`);
442
441
  console.log(
443
442
  "weapp===获取店铺下发查询参数\n",
444
443
  query,
445
444
  "\n获取店铺最后查询参数\n",
446
445
  this.info.queryInfo,
447
446
  "\n是否为更新店铺状态\n",
448
447
  updateShopInfoState
449
448
  );
450
449
  }
451
450
 
452
451
  getDynamicConfig(key: string){
453
452
  console.warn('调用微信小程序的 getDynamicConfig(),注意,此方法还未实现!')
454
453
  return null
455
454
  }
455
+ import Taro from "@tarojs/taro";
456
456
  WXAPP_LOGIN,
457
457
  WXAPP_BIZ,
458
458
  WXAPP_USER_INFO,
459
459
  WXAPP_NAVIGATOR,
460
460
  WXAPP_REPORT_GDT,
461
461
  WXAPP_PARAMS_SIGN,
462
462
  WXAPP_FINGER_REPORT,
463
463
  WXAPP_REPORT_MANAGE,
464
464
  WXAPP_SUBS_GUIDER,
465
465
  BUSINESS_TYPE,
466
466
  SHOP_MENU_ID_TYPE,
467
467
  SHOP_MENU_ID_NAME,
468
468
  SECTION_HOME_TAB_NAME_TYPE,
469
469
  SECTION_HOME_TAB_TYPE,
470
470
  TaroEventType,
471
471
  WX_BUSINESS_TYPE,
472
472
  WXAPP_BIZ_KEY,
473
473
  WXAPP_BIZ_SHOP_LIGHT_KEY,
474
474
  getSystemInfos,
475
475
  getTaroStorageKeyValue,
476
476
  getWxAppCookieStr,
477
477
  objectToUrlEncode,
478
478
  loginState: jdUserLoginState,
479
479
  cookiesStr: "",
480
480
  userInfo: userPinKey,
481
481
  pageInfo: {
482
482
  wxBusinessType: WX_BUSINESS_TYPE.SHOP,
483
483
  address: "",
484
484
  addressCommaStr: "",
485
485
  un_area: "",
486
486
  vapptype: "1",
487
487
  pageType: "home",
488
488
  dataType: BUSINESS_TYPE.ONLINE,
489
489
  floorExposureInfo: {},
490
490
  floorVideInfo: {},
491
491
  productVideInfo: {},
492
492
  tabsLoadAllDataInfo: {
493
493
  [SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_WELL_CHOSEN]]:
494
494
  false,
495
495
  [SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.CLASSIFY]]: true,
496
496
  },
497
497
  updateShopInfosAllState: false,
498
498
  isVipShop: false,
499
499
  isJdShowNativeImmersivePlayer: false,
500
500
  ...shopConfig,
501
501
  pageScrollTop: 0,
502
502
  pageIdxHeightInfo: {
503
503
  list: [],
504
504
  },
505
505
  shopNavBarHeight: 0,
506
506
  },
507
507
  defaultQueryLogInfo: {
508
508
  sourceType: "JDshop",
509
509
  sourceValue: "",
510
510
  moduleId: "none",
511
511
  entrance: "none",
512
512
  },
513
513
  originQueryInfo: {},
514
514
  sysInfo: {
515
515
  windowWidth: 0,
516
516
  windowHeight: 0,
517
517
  netWorkType: "4g",
518
518
  jdBottomBarHeight: 0,
519
519
  jdNativeHeaderHeight: 0,
520
520
  },
521
521
  queryInfo: {},
522
522
  shopInfo: {},
523
523
  openAppData: {},
524
524
  public info: CommonInterFace.BaseConfigInfo;
525
525
  public config: {
526
526
  [key: string]: any;
527
527
  };
528
528
  public lazyContainer: CommonInterFace.lazyContainer;
529
529
  public rootEleNode: HTMLElement | null;
530
530
  public miniApplogUtil: CommonInterFace.MiniApplogUtil;
531
531
  public miniAppLogInstance: CommonInterFace.MiniAppLog | null;
532
532
  public checkStatusAndLoginPromise: object | null;
533
533
  public wxAppLoginInstance: CommonInterFace.WxAppLogin;
534
534
  public wxAppBizInstance: CommonInterFace.WxAppUserInfo;
535
535
  public wxAppUserInfoInstance: CommonInterFace.WxAppUserInfo;
536
536
  public wxAppReportManageInstance: CommonInterFace.wxAppReportManage;
537
537
  public wxAppReportGDTInstance: CommonInterFace.WxAppReportGDT;
538
538
  public wxAppNavigatorInstance: CommonInterFace.WxAppNavigator;
539
539
  public wxAppParamsSignInstance: CommonInterFace.wxAppParamsSign;
540
540
  public wxAppFingerReportInstance: CommonInterFace.wxAppParamsSign;
541
541
  public wxAppSubsGuider: CommonInterFace.wxAppParamsSign;
542
542
  public loadJsSdkList: Array<any>
543
543
  constructor(opt) {
544
544
  this.info = this._getConfig(opt);
545
545
  this.config = {};
546
546
  this.lazyContainer = {
547
547
  [SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_WELL_CHOSEN]]: {
548
548
  appLazyContainerList: [],
549
549
  appLazyFinishContainerList: [],
550
550
  },
551
551
  [SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_PROMOTION]]: {
552
552
  appLazyContainerList: [],
553
553
  appLazyFinishContainerList: [],
554
554
  },
555
555
  };
556
556
  this.loadJsSdkList = []
557
557
  this.rootEleNode = null;
558
558
  this.miniApplogUtil = MiniAppLogUtil;
559
559
  this.miniAppLogInstance = null;
560
560
  this.checkStatusAndLoginPromise = null;
561
561
  this.wxAppLoginInstance = WXAPP_LOGIN;
562
562
  this.wxAppBizInstance = WXAPP_BIZ;
563
563
  this.wxAppUserInfoInstance = WXAPP_USER_INFO;
564
564
  this.wxAppReportManageInstance = WXAPP_REPORT_MANAGE;
565
565
  this.wxAppReportGDTInstance = WXAPP_REPORT_GDT;
566
566
  this.wxAppNavigatorInstance = WXAPP_NAVIGATOR;
567
567
  this.wxAppParamsSignInstance = WXAPP_PARAMS_SIGN;
568
568
  this.wxAppFingerReportInstance = WXAPP_FINGER_REPORT
569
569
  ? new WXAPP_FINGER_REPORT()
570
570
  : {};
571
571
  this.wxAppSubsGuider = WXAPP_SUBS_GUIDER;
572
572
  }
573
573
  _getConfig(opt) {
574
574
  return Object.assign({}, DefaultConfig, opt);
575
575
  }
576
576
 
577
577
  taskTimeoutPromise(callBack, timeout = 2000) {
578
578
  return new Promise((resolve) => {
579
579
  setTimeout(() => {
580
580
  const getCallBackRes = typeof callBack === "function" && callBack();
581
581
  return resolve(getCallBackRes || false);
582
582
  }, timeout);
583
583
  });
584
584
  }
585
585
 
586
586
  updateBusinessDomainAndApi(domain, api) {
587
587
  console.log("=================>", "updateBusinessDomainAndApi");
588
588
  }
589
589
 
590
590
  getFullScreenHeight(systemInfo) {
591
591
  const { screenHeight, statusBarHeight, isAndroid } = systemInfo;
592
592
  let result = screenHeight;
593
593
  if (statusBarHeight > 20 && isAndroid) {
594
594
  result = screenHeight + statusBarHeight;
595
595
  }
596
596
  return result;
597
597
  }
598
598
 
599
599
  getTabBarHeight(systemInfo) {
600
600
  const { statusBarHeight, isAndroid, isIOS } = systemInfo;
601
601
  let result = 50;
602
602
  if (statusBarHeight > 20) {
603
603
  if (isIOS) {
604
604
  result = 84;
605
605
  } else if (isAndroid) {
606
606
  result = 53;
607
607
  }
608
608
  }
609
609
  return result;
610
610
  }
611
611
 
612
612
  getSystemInfo() {
613
613
  const info: UtilsInterFace.taroGetSystemInfoSyncRes =
614
614
  getSystemInfos() || {};
615
615
  const actualNavBarHeight =
616
616
  (info?.navBarHeight || 0) + (info?.navBarExtendHeight || 0);
617
617
  const headerHeight = actualNavBarHeight + (info?.statusBarHeight || 0);
618
618
  const fullScreenHeight = this.getFullScreenHeight(info);
619
619
  const tabBarHeight = this.getTabBarHeight(info);
620
620
  const safeContentHeight = fullScreenHeight - headerHeight;
621
621
  this.info.sysInfo = {
622
622
  ...this.info.sysInfo,
623
623
  ...info,
624
624
  actualNavBarHeight,
625
625
  headerHeight,
626
626
  fullScreenHeight,
627
627
  tabBarHeight,
628
628
  safeContentHeight,
629
629
  };
630
630
  if (this.info.sysInfo["hostVersionName"]) {
631
631
  this.info.sysInfo["hostAppVersion"] = Number(
632
632
  this.info.sysInfo["hostVersionName"].replace(/\./g, "")
633
633
  );
634
634
  }
635
635
  this.info.sysInfo["wifiVideoAutoPlay"] = false;
636
636
  this.getNetWorkType();
637
637
  console.log("获取系统信息", this.info.sysInfo);
638
638
  }
639
639
  async updateMPaasConfig() {}
640
640
 
641
641
  getNetWorkType() {
642
642
  Taro.getNetworkType().then((getRes) => {
643
643
  getRes &&
644
644
  getRes.networkType &&
645
645
  (this.info.sysInfo["netWorkType"] = getRes.networkType);
646
646
  });
647
647
  }
648
648
 
649
649
  checkStatusAndLogin(options = {}) {
650
650
  this.checkStatusAndLoginPromise = new Promise((resolve, reject) => {
651
651
  console.log(
652
652
  "微信小程序登录状态及获取cookie状态的promise,之前登录状态",
653
653
  this.info.loginState
654
654
  );
655
655
  this.toLogin(options)
656
656
  .then((res) => {
657
657
  console.log("微信小程序登录状态结果,成功", res);
658
658
  this.info.loginState = true;
659
659
  resolve(res);
660
660
  })
661
661
  .catch((err) => {
662
662
  console.log("微信小程序登录异常状态结果", err);
663
663
  this.doLogin(options)
664
664
  .then((res2) => {
665
665
  console.log("微信小程序wxDoLogin强制登陆成功:", res2);
666
666
  this.info.loginState = true;
667
667
  resolve(res2);
668
668
  })
669
669
  .catch((err2) => {
670
670
  console.log("微信小程序wxDoLogin强制登陆失败:", err2);
671
671
  this.checkStatusAndLoginPromise = null;
672
672
  reject(err2);
673
673
  });
674
674
  });
675
675
  });
676
676
  return this.checkStatusAndLoginPromise;
677
677
  }
678
678
 
679
679
  checkJdStatusAndLogin(
680
680
  options = {
681
681
  loginColor: {
682
682
  biz: WXAPP_BIZ_SHOP_LIGHT_KEY,
683
683
  dpin: 0,
684
684
  },
685
685
  }
686
686
  ) {
687
687
  return this.checkStatusAndLogin(options);
688
688
  }
689
689
 
690
690
  toLogin(options = {}): Promise<any> {
691
691
  return this.wxAppLoginInstance
692
692
  .getLoginPromise({
693
693
  mode: "silent",
694
694
  loginColor: {
695
695
  biz: WXAPP_BIZ_KEY,
696
696
  dpin: 1,
697
697
  },
698
698
  ...options,
699
699
  })
700
700
  .then((res) => {
701
701
  console.log("微信app登录返回信息,微信侧返回code为0表示成功", res);
702
702
  setTimeout(() => {
703
703
  console.log(
704
704
  "微信app登录返回成功后,后台会写入cookie,有延迟,这里延迟500ms去获取最新cookie"
705
705
  );
706
706
  this.getLoginCookie(`${Date.now()}`);
707
707
  }, 500);
708
708
  })
709
709
  .catch((err) => {
710
710
  console.log("微信app登录异常返回信息,也获取cookie", err);
711
711
  this.getLoginCookie(`${Date.now()}`);
712
712
  });
713
713
  }
714
714
 
715
715
  doLogin(options = {}) {
716
716
  const getParams = {
717
717
  loginColor: {
718
718
  biz: WXAPP_BIZ_KEY,
719
719
  dpin: 1,
720
720
  },
721
721
  ...options,
722
722
  };
723
723
  if (isPublishToWxapp) {
724
724
  getParams[
725
725
  "returnUrl"
726
726
  ] = `/pages/shopx/pages/index/index?${objectToUrlEncode({
727
727
  ...this.info.originQueryInfo,
728
728
  loadShopxType: "redirect",
729
729
  })}`;
730
730
  }
731
731
  return this.wxAppLoginInstance.doLogin(getParams).then((res) => {
732
732
  console.log("微信小程序强制登录返回信息,微信侧返回code为0表示成功", res);
733
733
  setTimeout(() => {
734
734
  console.log(
735
735
  "微信强制登录后,后台会写入cookie,有延迟,这里延迟500ms去获取最新cookie"
736
736
  );
737
737
  this.getLoginCookie(`${Date.now()}`);
738
738
  }, 500);
739
739
  return res;
740
740
  });
741
741
  }
742
742
 
743
743
  doLoginForJdPin(options = {}) {
744
744
  return this.doLogin({
745
745
  loginColor: {
746
746
  biz: WXAPP_BIZ_SHOP_LIGHT_KEY,
747
747
  dpin: 0,
748
748
  },
749
749
  ...options,
750
750
  });
751
751
  }
752
752
 
753
753
  getLoginCookie(updateKey = "wxapp") {
754
754
  return new Promise((resolve) => {
755
755
  console.log("开始获取更新wxapp中的cookie信息", updateKey);
756
756
  if (
757
757
  this.config.wqCookie &&
758
758
  this.config.wqCookieStr &&
759
759
  this.config.getWqCookieKey === updateKey
760
760
  ) {
761
761
  console.log("已有存储wxapp中的cookie信息,直接返回", this.config);
762
762
  resolve({
763
763
  wqCookie: this.config.wqCookie,
764
764
  wqCookieStr: this.config.wqCookieStr,
765
765
  });
766
766
  } else {
767
767
  if (isPublishToWxapp) {
768
768
  const getWxappCookieObj = getTaroStorageKeyValue("cookies") || null;
769
769
  if (getWxappCookieObj) {
770
770
  const getCookieObj = getWxappCookieObj["_data"];
771
771
  const { wqCookie, wqCookieStr } = getWxAppCookieStr(getCookieObj);
772
772
  const {
773
773
  pin = "",
774
774
  visitkey = "-1",
775
775
  wq_unionid = "",
776
776
  wxapp_openid = "",
777
777
  } = wqCookie;
778
778
  this.info.loginState = true;
779
779
  this.info.userInfo.wqCookie = wqCookieStr;
780
780
  this.info.userInfo.wqVisitkey = visitkey;
781
781
  console.log("获取用户完整cookie信息", getCookieObj);
782
782
  const getUserAddress = this.wxAppUserInfoInstance.getAddress();
783
783
  console.log("获取微信用户地址信息", getUserAddress);
784
784
  if (getUserAddress) {
785
785
  this.info.pageInfo.address = getUserAddress?.areaId;
786
786
  this.info.pageInfo.addressCommaStr = this.info.pageInfo.address
787
787
  ? this.info.pageInfo.address.replace(/_/g, ",")
788
788
  : "";
789
789
  this.info.pageInfo.un_area = this.info.pageInfo.address;
790
790
  Taro.eventCenter.trigger(
791
791
  TaroEventType.USER_AREA_UPDATE,
792
792
  this.info.pageInfo.address
793
793
  );
794
794
  }
795
795
  if (this.miniAppLogInstance) {
796
796
  this.miniAppLogInstance.set({
797
797
  account: pin,
798
798
  unionid: wq_unionid,
799
799
  openid: wxapp_openid,
800
800
  });
801
801
  }
802
802
  this.config.wqCookie = wqCookie;
803
803
  this.config.wqCookieStr = wqCookieStr;
804
804
  this.config.getWqCookieKey = updateKey;
805
805
  console.log("解析wxapp中的cookie信息成功,返回后存储", this.config);
806
806
  resolve({
807
807
  wqCookie,
808
808
  wqCookieStr,
809
809
  });
810
810
  } else {
811
811
  console.log(
812
812
  "解析wxapp中的cookie信息异常,返回异常结果",
813
813
  this.config
814
814
  );
815
815
  resolve({
816
816
  wqCookie: false,
817
817
  wqCookieStr: false,
818
818
  });
819
819
  }
820
820
  } else {
821
821
  resolve({
822
822
  wqCookie: false,
823
823
  wqCookieStr: false,
824
824
  });
825
825
  }
826
826
  }
827
827
  });
828
828
  }
829
829
 
830
830
 
831
831
  checkLoginStatus() {
832
832
  return this.getLoginCookie();
833
833
  }
834
834
 
835
835
  getAddressCachePromise = () => {
836
836
  return Promise.reject("该方法只在APP内适用");
837
837
  };
838
838
 
839
839
  updatePageAndLogInfo(updateQuery = {}) {
840
840
  const createUpdateQueryInfo: {
841
841
  query: {
842
842
  shopId?: string | number;
843
843
  venderId?: string | number;
844
844
  };
845
845
  updateShopInfoState: boolean;
846
846
  } = Object.assign(
847
847
  {},
848
848
  {
849
849
  query: {},
850
850
  updateShopInfoState: false,
851
851
  },
852
852
  updateQuery
853
853
  );
854
854
  console.log(
855
855
  "获取当前下发的店铺查询参数",
856
856
  updateQuery,
857
857
  "获取之前保存的shopInfo店铺查询参数",
858
858
  this.info?.shopInfo
859
859
  );
860
860
  const { query, updateShopInfoState } = createUpdateQueryInfo;
861
861
  const { shopId, venderId } = query;
862
862
  if (updateShopInfoState) {
863
863
  this.info.queryInfo = {
864
864
  ...this.info.queryInfo,
865
865
  ...query,
866
866
  };
867
867
  if (shopId && venderId) {
868
868
  this.info.shopInfo = {
869
869
  shopId: `${shopId}`,
870
870
  venderId: `${venderId}`,
871
871
  };
872
872
  }
873
873
  } else {
874
874
  this.info.queryInfo = {
875
875
  ...query,
876
876
  };
877
877
  this.info.originQueryInfo = {
878
878
  ...query,
879
879
  };
880
880
  if (
881
881
  this.info.shopInfo?.shopId &&
882
882
  this.info.shopInfo?.venderId &&
883
883
  (this.info.shopInfo.shopId == shopId ||
884
884
  this.info.shopInfo.venderId == venderId)
885
885
  ) {
886
886
  this.info.queryInfo.shopId = this.info.shopInfo.shopId;
887
887
  this.info.queryInfo.venderId = this.info.shopInfo.venderId;
888
888
  console.log(
889
889
  "当前存储的店铺shopId和venderId与下发的店铺信息shopId或者venderId为同一个,补充shopId或者venderId查询参数",
890
890
  this.info.queryInfo
891
891
  );
892
892
  }
893
893
  }
894
894
  this.info.queryInfo["shopId"] &&
895
895
  (this.info.queryInfo["shopId"] = `${this.info.queryInfo["shopId"]}`);
896
896
  this.info.queryInfo["venderId"] &&
897
897
  (this.info.queryInfo["venderId"] = `${this.info.queryInfo["venderId"]}`);
898
898
  console.log(
899
899
  "weapp===获取店铺下发查询参数\n",
900
900
  query,
901
901
  "\n获取店铺最后查询参数\n",
902
902
  this.info.queryInfo,
903
903
  "\n是否为更新店铺状态\n",
904
904
  updateShopInfoState
905
905
  );
906
906
  }
907
907
 
908
908
  getDynamicConfig(key: string){
909
909
  console.warn('调用微信小程序的 getDynamicConfig(),注意,此方法还未实现!')
910
910
  return null
911
911
  }
912
912
  renderNextTickLoadSdk(){
913
913
  console.warn("暂未实现 index.weapp.ts")
914
914
  }
915
915
  loadOtherSdk(){
916
916
  console.warn('暂未实现 index.weapp.ts')
917
917
  }
918
918
  loadItemSdkPromise() {
919
919
  console.warn('暂未实现 index.weapp.ts')
920
920
  }