@conecli/cone-render 0.10.1-shop3.5 → 0.10.1-shop3.6

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