@conecli/cone-render 0.10.1-shop3.76 → 0.10.1-shop3.79

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.
@@ -1 +1 @@
1
- import Taro from '@tarojs/taro';
2
1
  JUMP_MEMBER_CHANNEL,
3
2
  SECTION_HOME_TAB_NAME_TYPE,
4
3
  SECTION_HOME_TAB_TYPE,
5
4
  SHOP_MENU_ID_NAME,
6
5
  SHOP_MENU_ID_TYPE,
7
6
  routerInfo: {
8
7
  params: {},
9
8
  },
10
9
  nativeEvent: null,
11
10
  logPageParamStr: '',
12
11
  public jingGouMiniState: boolean;
13
12
  public logPageId: string;
14
13
  public logPageParamStr: string;
15
14
  public nativeEvent: any;
16
15
  public routerInfo: JumpEventReportInterFace.RouterInfo;
17
16
  public logPname: LogPnameInfo;
18
17
  public jumpMiniPath: JumpEventReportInterFace.JumpMiniPath;
19
18
  public jumpWebUrl: JumpEventReportInterFace.jumpWebUrl;
20
19
  public sectionExposureInfo: object;
21
20
  public logPageIdInfo: any;
22
21
  public logPnameInfo: any;
23
22
  constructor(opt = {}) {
24
23
  this.logPageId = LogPageIdInfo.APP;
25
24
  this.logPageIdInfo = LogPageIdInfo;
26
25
  this.logPnameInfo = LogPnameInfo;
27
26
  this.jingGouMiniState = false;
28
27
  this.jumpMiniPath = JumpMiniPath;
29
28
  this.jumpWebUrl = JumpWebUrl;
30
29
  this.sectionExposureInfo = {};
31
30
  this.getConfig(opt);
32
31
  }
33
32
  getConfig(opt) {
34
33
  return Object.assign(this, {}, defaultConfig, opt);
35
34
  }
36
35
 
37
36
  updateInfo(routerInfo, logPname = LogPnameInfo.HOME, pageId = LogPageIdInfo.APP) {
38
37
  this.routerInfo = routerInfo;
39
38
  this.logPname = logPname;
40
39
  this.logPageId = pageId;
41
40
  }
42
41
  reportInfoPv(_pageId, _opt = {}) {}
43
42
 
44
43
  getShopIdOrVenderIdParams(
45
44
  params: JumpEventReportInterFace.ShopIdsInfo = {},
46
45
  ): JumpEventReportInterFace.ShopIdsInfo {
47
46
  const setParams = {};
48
47
  params.shopId && (setParams['shopId'] = `${params.shopId}`);
49
48
  params.venderId && (setParams['venderId'] = `${params.venderId}`);
50
49
  return setParams;
51
50
  }
52
51
 
53
52
  getShopIdsInfo(params = {}): JumpEventReportInterFace.ShopIdsInfo {
54
53
  let setParams = this.getShopIdOrVenderIdParams(params);
55
54
  setParams = {
56
55
  ...params,
57
56
  ...setParams,
58
57
  };
59
58
  return setParams;
60
59
  }
61
60
 
62
61
  jdJumpToShopHome(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
63
62
  console.log('[降级H5] jdJumpToShopHome base');
64
63
  const currentShopInfo = {
65
64
  shopId: global.info.queryInfo.shopId,
66
65
  venderId: global.info.queryInfo.venderId,
67
66
  };
68
67
  const restParams =
69
68
  (shopInfo?.shopId && shopInfo.shopId !== currentShopInfo.shopId) ||
70
69
  (shopInfo?.venderId && shopInfo.venderId !== currentShopInfo.venderId)
71
70
  ? {}
72
71
  : currentShopInfo;
73
72
  const getInfo = Object.assign({}, restParams, shopInfo);
74
73
  this.jdJumpToShopBase(getInfo);
75
74
  }
76
75
 
77
76
  jdJumpToShopHomeInner(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
78
77
  this.jdJumpToShopHome(shopInfo);
79
78
  }
80
79
 
81
80
  jdJumpToShopBase(shopInfo) {
82
81
  console.log('[降级H5] jdJumpToShopBase');
83
82
  this.jdNavigateToNative(
84
83
  `${this.jumpMiniPath.shop}?${objectToUrlEncode(this.getShopIdOrVenderIdParams(shopInfo))}`,
85
84
  {
86
85
  ...shopInfo,
87
86
  },
88
87
  );
89
88
  }
90
89
 
91
90
  jdJumpToShopLight(shopInfo) {
92
91
  this.jdNavigateToNative(
93
92
  `${this.jumpMiniPath.shopLight}?${objectToUrlEncode(
94
93
  this.getShopIdOrVenderIdParams(shopInfo),
95
94
  )}`,
96
95
  {
97
96
  ...shopInfo,
98
97
  },
99
98
  );
100
99
  }
101
100
 
102
101
  jdJumpToProduct(skuIds, logEventInfo) {
103
102
  skuIds = skuIds.toString().trim();
104
103
  const getSkuId = skuIds.indexOf(',') !== -1 ? skuIds.split(',')[0] : skuIds;
105
104
  this.jdNavigateToNative(`${this.jumpMiniPath.detail}?sku=${getSkuId}`, logEventInfo);
106
105
  }
107
106
 
108
107
  jdJumpSkuInfoToProduct(skuInfo: any = {}, logEventInfo) {
109
108
  const getSkuId = skuInfo?.skuId;
110
109
  getSkuId &&
111
110
  this.jdNavigateToNative(`${this.jumpMiniPath.detail}?sku=${getSkuId}`, logEventInfo);
112
111
  }
113
112
 
114
113
  jdJumpToCartPage(logEventInfo) {
115
114
  console.log('跳转到购物车页面', logEventInfo);
116
115
  }
117
116
 
118
117
  jdJumpToFlashSaleTab(_logEventInfo) {
119
118
  console.log('跳转闪购', _logEventInfo);
120
119
  }
121
120
 
122
121
 
123
122
  jdJumpToShopMemberInfo(logEventInfo) {
124
123
  console.log('跳转修改会员信息页', logEventInfo);
125
124
  }
126
125
 
127
126
  jdJumpToShopMemberPointDetail(logEventInfo) {
128
127
  const venderId = global.info.queryInfo.venderId;
129
128
  const shopId = global.info.queryInfo.shopId;
130
129
  this.jdJumpToWeb(
131
130
  `${this.jumpWebUrl.memberScores}?venderId=${venderId}&shopId=${shopId}`,
132
131
  logEventInfo,
133
132
  );
134
133
  }
135
134
 
136
135
  jdJumpToShopMemberBenefit(logEventInfo) {
137
136
  const venderId = global.info.queryInfo.venderId;
138
137
  const shopId = global.info.queryInfo.shopId;
139
138
  this.jdJumpToWeb(
140
139
  `${this.jumpWebUrl.memberBenefit}?venderId=${venderId}&shopId=${shopId}`,
141
140
  logEventInfo,
142
141
  );
143
142
  }
144
143
 
145
144
  jdJumpToShopMemberRule(logEventInfo) {
146
145
  const venderId = global.info.queryInfo.venderId;
147
146
  const shopId = global.info.queryInfo.shopId;
148
147
  console.log('会员规则页h5 global.info', global.info);
149
148
  this.jdJumpToWeb(
150
149
  `${this.jumpWebUrl.shopMemberRule}?venderId=${venderId}&shopId=${shopId}&sign=member`,
151
150
  logEventInfo,
152
151
  );
153
152
  }
154
153
 
155
154
  jdJumpToShopMemberCloseAccount(venderType, logEventInfo) {
156
155
  const venderId = global.info.queryInfo.venderId;
157
156
  const shopId = global.info.queryInfo.shopId;
158
157
  console.log('注销会员页h5 global.info', global.info);
159
158
  this.jdJumpToWeb(
160
159
  `${this.jumpWebUrl.shopMemberCloseAccount}?venderId=${venderId}&shopId=${shopId}&venderType=${venderType}`,
161
160
  logEventInfo,
162
161
  );
163
162
  }
164
163
 
165
164
  jdJumpToShopMemberPointExchange(venderType, levelZeroMenuUrl, logEventInfo) {
166
165
  const venderId = global.info.queryInfo.venderId;
167
166
  const shopId = global.info.queryInfo.shopId;
168
167
  const channel = JUMP_MEMBER_CHANNEL.H5;
169
168
  this.jdJumpToWeb(
170
169
  `${this.jumpWebUrl.shopMemberPointExchange}?venderId=${venderId}&shopId=${shopId}&venderType=${venderType}&channel=${channel}&levelZeroMenuUrl=${levelZeroMenuUrl}`,
171
170
  logEventInfo,
172
171
  );
173
172
  }
174
173
 
175
174
  jdJumpToShopMemberBonusPurchase(customerLevel, logEventInfo) {
176
175
  const venderId = global.info.queryInfo.venderId;
177
176
  const shopId = global.info.queryInfo.shopId;
178
177
  this.jdJumpToWeb(
179
178
  `${this.jumpWebUrl.shopMemberBonusPurchase}?venderId=${venderId}&shopId=${shopId}&customerLevel=${customerLevel}`,
180
179
  logEventInfo,
181
180
  );
182
181
  }
183
182
 
184
183
  jdJumpToShopMemberGood(customerLevel, logEventInfo) {
185
184
  const venderId = global.info.queryInfo.venderId;
186
185
  const shopId = global.info.queryInfo.shopId;
187
186
  this.jdJumpToWeb(
188
187
  `${this.jumpWebUrl.shopMemberGood}?venderId=${venderId}&shopId=${shopId}&customerLevel=${customerLevel}`,
189
188
  logEventInfo,
190
189
  );
191
190
  }
192
191
 
193
192
  jdJumpToBeanDetail(logEventInfo) {
194
193
  console.log('this.jumpWebUrl.beanDetail', this.jumpWebUrl.beanDetail);
195
194
  this.jdJumpToWeb(`${this.jumpWebUrl.beanDetail}?source=dianpuhuiyuan`, logEventInfo);
196
195
  }
197
196
 
198
197
  jdJumpToMyRedEnvelope(logEventInfo) {
199
198
  this.jdJumpToWeb(this.jumpWebUrl.myRedPacketList, logEventInfo);
200
199
  }
201
200
 
202
201
  jdJumpToMyCoupon(logEventInfo) {
203
202
  this.jdJumpToWeb(this.jumpWebUrl.myCouponList, logEventInfo);
204
203
  }
205
204
 
206
205
  jdJumpToNewH5MemberCard(logEventInfo?) {
207
206
  const venderId = global.info.queryInfo.venderId;
208
207
  const shopId = global.info.queryInfo.shopId;
209
208
  this.jdJumpToWeb(
210
209
  `${this.jumpWebUrl.shopH5MemberCardM}?venderId=${venderId}&shopId=${shopId}`,
211
210
  logEventInfo,
212
211
  );
213
212
  }
214
213
 
215
214
 
216
215
  jdJumpToTabAllProduct(shopId, venderId, logEventInfo = {}) {
217
216
  console.log('base.ts - jdJumpToTabAllProduct');
218
217
  if (typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId;
219
218
  if (typeof venderId === 'undefined') venderId = global.info.queryInfo.venderId;
220
219
  this.jdJumpToWeb(
221
220
  `${this.jumpWebUrl.pages}?shopId=${shopId}&venderId=${venderId}&tabActive=home-product`,
222
221
  logEventInfo,
223
222
  );
224
223
  }
225
224
 
226
225
  jdJumpToTabAllProductInner(shopId, venderId, logEventInfo = {}) {
227
226
  if (typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId;
228
227
  if (typeof venderId === 'undefined') venderId = global.info.queryInfo.venderId;
229
228
  this.jdJumpToTabAllProduct(shopId, venderId, logEventInfo);
230
229
  }
231
230
 
232
231
  jdJumpToTopTabBase(type, shopInfo = {}) {
233
232
  const getInfo = Object.assign(
234
233
  {},
235
234
  {
236
235
  shopId: global.info.queryInfo.shopId,
237
236
  venderId: global.info.queryInfo.venderId,
238
237
  },
239
238
  shopInfo,
240
239
  );
241
240
  this.jdJumpToWeb(
242
241
  `${this.jumpWebUrl.shopHome}?${objectToUrlEncode(
243
242
  this.getShopIdOrVenderIdParams(getInfo),
244
243
  )}&tabActive=${type}`,
245
244
  getInfo,
246
245
  );
247
246
  }
248
247
 
249
248
  jdJumpToTabNew(shopInfo = {}) {
250
249
  console.log('上新tab');
251
250
  this.jdJumpToTopTabBase(
252
251
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_NEW_PRODUCT],
253
252
  shopInfo,
254
253
  );
255
254
  }
256
255
 
257
256
  jdJumpToTabNewInner(shopInfo = {}) {
258
257
  this.jdJumpToTabNew(shopInfo);
259
258
  }
260
259
 
261
260
  jdJumpToTabRank(shopInfo = {}) {
262
261
  console.log('榜单tab');
263
262
  this.jdJumpToTopTabBase(SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_RANK], shopInfo);
264
263
  }
265
264
  jdJumpToTabRankInner(shopInfo = {}) {
266
265
  this.jdJumpToTabRank(shopInfo);
267
266
  }
268
267
  jdJumpToTabBuyerShow(shopInfo = {}) {
269
268
  console.log('买家秀tab');
270
269
  this.jdJumpToTopTabBase(
271
270
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_BUYER_SHOW],
272
271
  shopInfo,
273
272
  );
274
273
  }
275
274
  jdJumpToTabBuyerShowInner(shopInfo = {}) {
276
275
  this.jdJumpToTabBuyerShow(shopInfo);
277
276
  }
278
277
  jdJumpToTabActivity(shopInfo = {}) {
279
278
  console.log('活动tab');
280
279
  this.jdJumpToTopTabBase(
281
280
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_ACTIVITY],
282
281
  shopInfo,
283
282
  );
284
283
  }
285
284
  jdJumpToTabActivityInner(shopInfo = {}) {
286
285
  this.jdJumpToTabActivity(shopInfo);
287
286
  }
288
287
  jdJumpToTabSecKill(shopInfo = {}) {
289
288
  console.log('秒杀tab');
290
289
  this.jdJumpToTopTabBase(
291
290
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_SECKILL],
292
291
  shopInfo,
293
292
  );
294
293
  }
295
294
  jdJumpToTabSecKillInner(shopInfo = {}) {
296
295
  this.jdJumpToTabSecKill(shopInfo);
297
296
  }
298
297
 
299
298
  jdJumpToBottomTabBase(type, shopInfo = {}) {
300
299
  this.jdJumpToTopTabBase(type, shopInfo);
301
300
  }
302
301
  jdJumpToBottomTabProduct(shopInfo = {}) {
303
302
  this.jdJumpToBottomTabBase(SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.PRODUCT], shopInfo);
304
303
  }
305
304
  jdJumpToBottomTabCategory(shopInfo = {}) {
306
305
  this.jdJumpToBottomTabBase(SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.CLASSIFY], shopInfo);
307
306
  }
308
307
  jdJumpToBottomTabFind(shopInfo = {}) {
309
308
  console.log('发现tab');
310
309
  }
311
310
  jdJumpToBottomTabBrandMember(shopInfo = {}) {
312
311
  const getInfo = Object.assign(
313
312
  {},
314
313
  {
315
314
  shopId: global.info.queryInfo.shopId,
316
315
  venderId: global.info.queryInfo.venderId,
317
316
  },
318
317
  shopInfo,
319
318
  );
320
319
  this.jdJumpToWeb(
321
320
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(this.getShopIdOrVenderIdParams(getInfo))}`,
322
321
  getInfo,
323
322
  );
324
323
  }
325
324
  jdJumpToBottomTabBrandMemberInner(shopInfo = {}) {
326
325
  this.jdJumpToBottomTabBrandMember(shopInfo);
327
326
  }
328
327
 
329
328
  jdJumpToAppHome(logEventInfo) {
330
329
  this.jdJumpToWeb(`${this.jumpWebUrl.mobileHome}?originReferer=shopx`, logEventInfo);
331
330
  }
332
331
 
333
332
  jdJumpToShopSearch(queryParams) {
334
333
  const getInfo = Object.assign(
335
334
  {},
336
335
  {
337
336
  shopId: global.info.queryInfo.shopId,
338
337
  venderId: global.info.queryInfo.venderId,
339
338
  },
340
339
  queryParams,
341
340
  );
342
341
  const {
343
342
  shopId,
344
343
  categoryId,
345
344
  keyword,
346
345
  pageId,
347
346
  description,
348
347
  shopName,
349
348
  keyWord,
350
349
  seller_actId,
351
350
  seller_actType,
352
351
  } = getInfo;
353
352
  const cateId = categoryId
354
353
  ? `&cateId=${typeof categoryId === 'string' ? categoryId?.trim() : categoryId}`
355
354
  : '';
356
355
  const addKeyWord = keyword || keyWord ? `&keyword=${keyword || keyWord}` : '';
357
356
  const addPageId = pageId ? `&pageId=${pageId}` : '';
358
357
  const searchDes = description ? `&description=${description}` : '';
359
358
  const shopNameDes = shopName ? `&shopName=${shopName}` : '';
360
359
  const searchType = categoryId ? 5 : keyword || keyWord ? 4 : 3;
361
360
  const activityId = seller_actId ? `&activityId=${seller_actId}` : '';
362
361
  const activityType = seller_actType ? `&activityType=${seller_actType}` : '';
363
362
  this.jdJumpToWeb(
364
363
  `${this.jumpWebUrl.shopSearch}?shopId=${shopId}&searchType=${searchType}${cateId}${addKeyWord}${addPageId}${searchDes}${shopNameDes}${activityId}${activityType}`,
365
364
  getInfo,
366
365
  );
367
366
  }
368
367
 
369
368
  jdJumpToSearch(shopId, suggestWord) {
370
369
  console.log('搜索中间页');
371
370
  }
372
371
 
373
372
  jdJumpToOrderList() {
374
373
  console.warn('触发基类的jdJumpToOrderList,这不是一个期望的结果,应该调用各端子类来实现');
375
374
  }
376
375
 
377
376
  jdJumpToCouponSearchProductList(couponId, logEventInfo = {}) {
378
377
  this.jdJumpToWeb(
379
378
  `${this.jumpWebUrl.couponSearch}?couponbatch=${couponId}&sceneval=2`,
380
379
  logEventInfo,
381
380
  );
382
381
  }
383
382
 
384
383
  jdJumpToWeb(
385
384
  spUrl,
386
385
  logEventInfo,
387
386
  successBack?: functionType | undefined,
388
387
  failBack?: functionType | undefined,
389
388
  ) {
390
389
  this.jdNavigateToNative(
391
390
  `${this.jumpMiniPath.h5}?encode_url=` + encodeURIComponent(spUrl),
392
391
  {
393
392
  ...logEventInfo,
394
393
  },
395
394
  successBack,
396
395
  failBack,
397
396
  );
398
397
  }
399
398
 
400
399
  jdJumpToWebInner(url, logEventInfo) {
401
400
  this.jdJumpToWeb(url, logEventInfo);
402
401
  }
403
402
 
404
403
  weappRedirectToWeb(url: string, logEventInfo: JumpEventReportInterFace.OptEventLogParams = {}) {
405
404
  console.log('weappRedirectToWeb base:', url, logEventInfo);
406
405
  }
407
406
 
408
407
  jdJumpToLive(liveInfo, logEventInfo = {}) {
409
408
  if (liveInfo?.liveId) {
410
409
  this.jdJumpToWeb(`${this.jumpWebUrl.mLive}/${liveInfo?.liveId}?origin=30`, logEventInfo);
411
410
  }
412
411
  }
413
412
 
414
413
  jdJumpToUgcContent(urlObj, logEventInfo = {}) {
415
414
  if (typeof urlObj === 'object') {
416
415
  this.jdJumpToWeb(
417
416
  `${this.jumpWebUrl.shopUseShareOrderUgcContent}?${objectToUrlEncode(urlObj)}`,
418
417
  { logEventInfo },
419
418
  );
420
419
  } else {
421
420
  const getShopUgcParams = this.jdOpenAppParams(urlObj);
422
421
  console.log('getShopUgcParams=====', getShopUgcParams);
423
422
  if (getShopUgcParams) {
424
423
  getShopUgcParams['category'] && delete getShopUgcParams['category'];
425
424
  getShopUgcParams['des'] && delete getShopUgcParams['des'];
426
425
  this.jdJumpToWeb(
427
426
  `${this.jumpWebUrl.shopUseShareOrderUgcContent}?${objectToUrlEncode(
428
427
  getShopUgcParams as object,
429
428
  )}`,
430
429
  { logEventInfo },
431
430
  );
432
431
  }
433
432
  }
434
433
  }
435
434
 
436
435
  jdJumpToShopActivity(shopInfo) {
437
436
  const getParams = Object.assign(
438
437
  {},
439
438
  {
440
439
  category: 'jump',
441
440
  des: 'jshopActivity',
442
441
  shopId: global.info.queryInfo.shopId,
443
442
  venderId: global.info.queryInfo.venderId,
444
443
  },
445
444
  shopInfo,
446
445
  );
447
446
  getParams['projectId'] && (getParams['projectId'] = `${getParams['projectId']}`);
448
447
  }
449
448
 
450
449
  jdJumpToShopMember(shopInfo) {
451
450
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo);
452
451
  this.jdJumpToWeb(`${this.jumpWebUrl.shopMember}?${objectToUrlEncode(getShopInfo)}`, shopInfo);
453
452
  }
454
453
 
455
454
  jdJumpToMemberTab(shopInfo?) {
456
455
  console.log('店内跳转会员tab', shopInfo);
457
456
  }
458
457
 
459
458
  jdJumpToShopMemberCard(shopInfo) {
460
459
  const { logEventInfo } = shopInfo;
461
460
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo);
462
461
  this.jdJumpToWeb(
463
462
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(getShopInfo)}`,
464
463
  logEventInfo,
465
464
  );
466
465
  }
467
466
 
468
467
  jdJumpToTotalPromotion(shopInfo) {
469
468
  const { url, logEventInfo } = shopInfo;
470
469
  if (this.isOpenJdAppUrl(url)) {
471
470
  const getOpenAppParams: any = this.jdOpenAppParams(url);
472
471
  if (getOpenAppParams) {
473
472
  if (getOpenAppParams?.activityId) {
474
473
  this.jdJumpToWeb(
475
474
  `${this.jumpWebUrl.totalPromotion}?activity_id=${getOpenAppParams?.activityId}`,
476
475
  shopInfo,
477
476
  );
478
477
  }
479
478
  }
480
479
  } else {
481
480
  this.jdJumpToWeb(url, logEventInfo);
482
481
  }
483
482
  }
484
483
 
485
484
  jdJumpToDongDongChatGroup(groupId, source = 'jdmini') {
486
485
  console.warn(
487
486
  'JdJumpToDongDongChatGroup method is invoked, but should be implemented in subclasses',
488
487
  );
489
488
  }
490
489
 
491
490
  jdJumpToDongDongChat(paramInfo) {
492
491
  const getInfo = Object.assign(
493
492
  {},
494
493
  {
495
494
  venderId: global.info.queryInfo.venderId,
496
495
  },
497
496
  paramInfo,
498
497
  );
499
498
  const { venderId = '1', entry = 'm_shop', ...otherInfo } = getInfo;
500
499
  const dongdongUrl = `${this.jumpWebUrl.dongDongChat}?venderId=${venderId}&entry=${entry}&sceneval=2`;
501
500
  this.jdJumpToWeb(dongdongUrl, otherInfo);
502
501
  }
503
502
 
504
503
  jdJumpToShopDetail(shopInfo) {
505
504
  const getInfo = Object.assign(
506
505
  {},
507
506
  {
508
507
  shopId: global.info.queryInfo.shopId,
509
508
  venderId: global.info.queryInfo.venderId,
510
509
  },
511
510
  shopInfo,
512
511
  );
513
512
  const getShopInfo = this.getShopIdOrVenderIdParams(getInfo);
514
513
  this.jdJumpToWeb(`${this.jumpWebUrl.shopIntroduce}?${objectToUrlEncode(getShopInfo)}`, getInfo);
515
514
  }
516
515
 
517
516
  jdJumpToShopLottery(shopTotalInfo) {
518
517
  const getInfo = Object.assign(
519
518
  {},
520
519
  {
521
520
  shopId: global.info.queryInfo.shopId,
522
521
  venderId: global.info.queryInfo.venderId,
523
522
  },
524
523
  shopTotalInfo,
525
524
  );
526
525
  const getShopInfo = this.getShopIdOrVenderIdParams(getInfo);
527
526
  this.jdJumpToWeb(`${this.jumpWebUrl.shopLottery}?${objectToUrlEncode(getShopInfo)}`, getInfo);
528
527
  }
529
528
 
530
529
  jdJumpToSageAuthorHome(shopTotalInfo) {
531
530
  const { logEventInfo, ...otherParams } = shopTotalInfo;
532
531
  const getInfo = Object.assign(
533
532
  {},
534
533
  {
535
534
  channel: 'shopHomePage',
536
535
  selectTab: '0',
537
536
  },
538
537
  otherParams,
539
538
  );
540
539
  this.jdJumpToWeb(`${this.jumpWebUrl.sageAuthorHome}?${objectToUrlEncode(getInfo)}`, {
541
540
  ...getInfo,
542
541
  ...logEventInfo,
543
542
  });
544
543
  }
545
544
 
546
545
  jdJumpToOrderInfoView(skuInfos, logEventInfo) {
547
546
  console.log(
548
547
  '🚀 ~ 跳转结算页 JumpEventReportBase ~ jdJumpToOrderInfoView ~ skuInfos, logEventInfo:',
549
548
  skuInfos,
550
549
  logEventInfo,
551
550
  );
552
551
  }
553
552
 
554
553
  jdJumpToMiniProgram({ appId, path, param = {} }: JumpEventReportInterFace.LinkMiniParams) {
555
554
  const pageName = param['pageType'] || 'home';
556
555
  path = `pages/${pageName}/index`;
557
556
  if (appId === global.info.pageInfo?.appId) {
558
557
  Taro.navigateTo({
559
558
  url: `/${path}?${objectToUrlEncode(param)}`,
560
559
  }).catch((err) => {
561
560
  console.warn('跳转小程序页面错误:', err);
562
561
  });
563
562
  } else {
564
563
  console.log('一个小程序跳转到另一个小程序暂无此业务');
565
564
  }
566
565
  }
567
566
 
568
567
  jdJumpToAppMiniProgram(
569
568
  path: string,
570
569
  param = {},
571
570
  successBack?: functionType,
572
571
  failBack?: functionType,
573
572
  ) {
574
573
  this.jdNavigateToNative(path, param, successBack, failBack);
575
574
  }
576
575
 
577
576
  jdJumpConfigUrl(detail, logEventInfo = {}) {
578
577
  const { configDataType, configDataValue } = detail;
579
578
  switch (configDataType) {
580
579
  case LinkConfigType.CONFIG_TYPE_SKU_LIST:
581
580
  if (logEventInfo?.jsonParam?.logBaseInfo?.mInfo) {
582
581
  logEventInfo.jsonParam.logBaseInfo.mInfo.skuid = configDataValue.skuIds;
583
582
  }
584
583
  this.jdJumpToProduct(configDataValue.skuIds, logEventInfo);
585
584
  break;
586
585
  case LinkConfigType.CONFIG_TYPE_COUPON_LIST:
587
586
  this.jdJumpToWeb(
588
587
  `${this.jumpWebUrl.shopCoupon}?couponType=1&shopId=${global.info.queryInfo.shopId}&venderId=${global.info.queryInfo.venderId}`,
589
588
  logEventInfo,
590
589
  );
591
590
  break;
592
591
  case LinkConfigType.CONFIG_TYPE_CATEGORY:
593
592
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
594
593
  const getShopSearchParams = this.jdOpenAppParams(configDataValue.clickUrl);
595
594
  getShopSearchParams &&
596
595
  this.jdJumpToShopSearch(
597
596
  Object.assign({}, getShopSearchParams, {
598
597
  logEventInfo,
599
598
  }),
600
599
  );
601
600
  } else {
602
601
  this.jdJumpToShopSearch(
603
602
  configDataValue['cid']
604
603
  ? Object.assign(
605
604
  {},
606
605
  {
607
606
  shopId: global.info.queryInfo.shopId,
608
607
  categoryId: configDataValue.cid,
609
608
  logEventInfo,
610
609
  },
611
610
  )
612
611
  : {
613
612
  shopId: global.info.queryInfo.shopId,
614
613
  logEventInfo,
615
614
  },
616
615
  );
617
616
  }
618
617
  break;
619
618
  case LinkConfigType.CONFIG_TYPE_MEMBER:
620
619
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
621
620
  const getShopMemberParams = this.jdOpenAppParams(configDataValue.clickUrl);
622
621
  getShopMemberParams &&
623
622
  this.jdJumpToShopMember(
624
623
  Object.assign({}, getShopMemberParams, {
625
624
  logEventInfo,
626
625
  }),
627
626
  );
628
627
  } else {
629
628
  this.jdJumpToShopMember({
630
629
  shopId: global.info.queryInfo.shopId,
631
630
  venderId: configDataValue.shopDetail,
632
631
  logEventInfo,
633
632
  });
634
633
  }
635
634
  break;
636
635
  case LinkConfigType.CONFIG_TYPE_SHOP_ACTIVITY:
637
636
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
638
637
  const getShopActivityParams = this.jdOpenAppParams(configDataValue.clickUrl);
639
638
  getShopActivityParams &&
640
639
  this.jdJumpToShopActivity(
641
640
  Object.assign({}, getShopActivityParams, {
642
641
  logEventInfo,
643
642
  }),
644
643
  );
645
644
  } else if (configDataValue['projectId']) {
646
645
  this.jdJumpToShopActivity({
647
646
  projectId: configDataValue['projectId'],
648
647
  configDataValue,
649
648
  logEventInfo,
650
649
  });
651
650
  }
652
651
  break;
653
652
  case LinkConfigType.CONFIG_TYPE_CUSTOM_LINK:
654
653
  case LinkConfigType.CONFIG_TYPE_FINANCE_COUPON: {
655
654
  const _url = configDataValue.linkUrl;
656
655
  if (
657
656
  _url.indexOf('to=') === -1 &&
658
657
  _url.indexOf(`${domain.mshop.replace(/https?:/, '')}/?shopId=`) !== -1
659
658
  ) {
660
659
  const _shopId = _url.match(/\d+/g)[0];
661
660
  this.jdJumpToShopHome({
662
661
  shopId: `${_shopId}`,
663
662
  logEventInfo,
664
663
  });
665
664
  } else if (this.isOpenJdAppUrl(_url)) {
666
665
  const getOpenAppParams = this.jdOpenAppParams(_url);
667
666
  console.log('获取解析后的参数结果', getOpenAppParams);
668
667
  if (getOpenAppParams) {
669
668
  isJdApp
670
669
  ? this.jdNavigateToNative(
671
670
  Object.assign({}, getOpenAppParams, {
672
671
  logEventInfo,
673
672
  }),
674
673
  )
675
674
  : this.jdNavigateToNative(
676
675
  '',
677
676
  Object.assign({}, getOpenAppParams, {
678
677
  logEventInfo,
679
678
  }),
680
679
  );
681
680
  } else {
682
681
  this.jdNavigateToNative(
683
682
  '',
684
683
  Object.assign({}, getOpenAppParams, {
685
684
  logEventInfo,
686
685
  }),
687
686
  );
688
687
  }
689
688
  } else {
690
689
  this.jdJumpToWeb(_url, logEventInfo);
691
690
  }
692
691
  break;
693
692
  }
694
693
  case LinkConfigType.CONFIG_TYPE_JSHOP_DETAIL:
695
694
  this.jdJumpToShopDetail({
696
695
  venderId: global.info.queryInfo.venderId,
697
696
  shopId: global.info.queryInfo.shopId,
698
697
  logEventInfo,
699
698
  });
700
699
  break;
701
700
  case LinkConfigType.CONFIG_TYPE_SHOP_HOME:
702
701
  this.jdJumpToShopHome({
703
702
  ...configDataValue,
704
703
  logEventInfo,
705
704
  });
706
705
  break;
707
706
  case LinkConfigType.CONFIG_TYPE_ANCHOR_POINT:
708
707
  break;
709
708
  case LinkConfigType.CONFIG_TYPE_SHOPPING_GUIDE:
710
709
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
711
710
  const getShoppingGuideParams = this.jdOpenAppParams(configDataValue.clickUrl);
712
711
  getShoppingGuideParams &&
713
712
  this.jdJumpToShopActivity(
714
713
  Object.assign({}, getShoppingGuideParams, {
715
714
  logEventInfo,
716
715
  }),
717
716
  );
718
717
  }
719
718
  break;
720
719
  case LinkConfigType.CONFIG_TYPE_MINI_PROGRAM: {
721
720
  const linkUrl = decodeURIComponent(configDataValue?.linkUrl || '');
722
721
  const search = linkUrl.match(/\?.+/);
723
722
  if (search) {
724
723
  const miniQueryData: JumpEventReportInterFace.LinkMiniParams =
725
724
  parseQueryUrlString(linkUrl);
726
725
  try {
727
726
  miniQueryData.param = JSON.parse(<string>miniQueryData?.param);
728
727
  } catch (e) {
729
728
  console.warn('解析小程序 param 错误:', miniQueryData.param);
730
729
  }
731
730
  this.jdJumpToMiniProgram(miniQueryData);
732
731
  } else {
733
732
  console.warn('小程序地址错误:', linkUrl);
734
733
  }
735
734
  break;
736
735
  }
737
736
  case LinkConfigType.CONFIG_TYPE_SHOP_SEARCH: {
738
737
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
739
738
  const getShopSearchParams = this.jdOpenAppParams(configDataValue.clickUrl);
740
739
  console.log('base 获取店铺结果落地页链接解析后的参数结果', getShopSearchParams);
741
740
  getShopSearchParams &&
742
741
  this.jdJumpToShopSearch(
743
742
  Object.assign({}, getShopSearchParams, {
744
743
  logEventInfo,
745
744
  }),
746
745
  );
747
746
  } else {
748
747
  this.jdJumpToWeb(configDataValue.clickUrl, logEventInfo);
749
748
  }
750
749
  break;
751
750
  }
752
751
  default:
753
752
  }
754
753
  }
755
754
 
756
755
  jdOpenAppParams(openAppUrl): object | boolean {
757
756
  let getParams: boolean | object = false;
758
757
  if (this.isOpenJdAppUrl(openAppUrl)) {
759
758
  try {
760
759
  getParams = openAppUrl.replace(/openApp\.jdMobile:\/\/virtual\?params=/i, '');
761
760
  getParams = JSON.parse(String(getParams));
762
761
  } catch (e) {
763
762
  console.log(e);
764
763
  }
765
764
  }
766
765
  return getParams;
767
766
  }
768
767
  isOpenJdAppUrl(openAppUrl) {
769
768
  return /openApp\.jdMobile:\/\/virtual\?params=/i.test(openAppUrl);
770
769
  }
771
770
 
772
771
  creatParamToLogStr(eventParam) {
773
772
  return eventParam
774
773
  ? Object.keys(eventParam)
775
774
  .map((key) => {
776
775
  return `${key}_${eventParam[key]}`;
777
776
  })
778
777
  .join('_')
779
778
  : '';
780
779
  }
781
780
 
782
781
  jdNavigateToNative(
783
782
  url: string,
784
783
  params: {
785
784
  logEventInfo?: object;
786
785
  } = {},
787
786
  successBack?: functionType | undefined,
788
787
  failBack?: functionType | undefined,
789
788
  ) {
790
789
  const { logEventInfo } = params;
791
790
  const getEparam = logEventInfo || params;
792
791
  console.log('jdNavigateToNative params: ', params);
793
792
  console.log('logEventInfo params: ', logEventInfo);
794
793
  try {
795
794
  this.clickEventLog(getEparam);
796
795
  } catch (e) {
797
796
  console.log(e);
798
797
  }
799
798
  setTimeout(() => {
800
799
  Taro.navigateTo({
801
800
  url,
802
801
  })
803
802
  .then((res) => {
804
803
  typeof successBack === 'function' && successBack(res);
805
804
  console.log('navigateToWxapp.success', res);
806
805
  })
807
806
  .catch((err) => {
808
807
  typeof failBack === 'function' && failBack(err);
809
808
  console.log('navigateToWxapp.fail', err);
810
809
  });
811
810
  }, 200);
812
811
  }
813
812
 
814
813
  clickEventLog(opts: JumpEventReportInterFace.OptEventLogParams = {}, clickKey = 'click') {
815
814
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts;
816
815
  if (eventId && jsonParam) {
817
816
  const { etModelInfo, logBaseInfo } = jsonParam;
818
817
  let getJsonParam = logBaseInfo || jsonParam;
819
818
  if (etModelInfo && logBaseInfo) {
820
819
  getJsonParam = logBaseInfo;
821
820
  } else {
822
821
  if (Array.isArray(jsonParam)) {
823
822
  getJsonParam = jsonParam;
824
823
  } else {
825
824
  getJsonParam = Object.assign(
826
825
  {},
827
826
  {
828
827
  shopid: global.info.queryInfo?.shopId,
829
828
  },
830
829
  jsonParam,
831
830
  );
832
831
  }
833
832
  }
834
833
  const miniClickKey = clickKey === 'addToCart' ? 'addToCart' : 'click';
835
834
  const miniLogParams = {
836
835
  eid: eventId,
837
836
  elevel: eventLevel,
838
837
  ext: JSON.stringify(getJsonParam),
839
838
  etModel: JSON.stringify(etModelInfo || {}),
840
839
  pname: this.logPname,
841
840
  pparam: JSON.stringify(this.routerInfo.params),
842
841
  target: this.routerInfo.path,
843
842
  event: this.nativeEvent,
844
843
  pageId: this.logPageId,
845
844
  ...otherParams,
846
845
  };
847
846
  console.log('点击埋点参数对象', miniLogParams, miniClickKey);
848
847
  global.miniAppLogInstance && global.miniAppLogInstance[miniClickKey](miniLogParams);
849
848
  }
850
849
  }
851
850
 
852
851
  exposureEventLog(opts: JumpEventReportInterFace.OptEventLogParams = {}) {
853
852
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts;
854
853
  if (eventId && jsonParam) {
855
854
  const { etModelInfo, logBaseInfo } = jsonParam;
856
855
  let getJsonParam = {};
857
856
  if (etModelInfo && logBaseInfo) {
858
857
  getJsonParam = logBaseInfo;
859
858
  } else {
860
859
  if (Array.isArray(jsonParam)) {
861
860
  getJsonParam = jsonParam;
862
861
  } else {
863
862
  getJsonParam = Object.assign(
864
863
  {},
865
864
  {
866
865
  shopid: global.info.queryInfo?.shopId,
867
866
  },
868
867
  jsonParam,
869
868
  );
870
869
  }
871
870
  }
872
871
  const miniLogParams = {
873
872
  eid: eventId,
874
873
  elevel: eventLevel,
875
874
  ext: JSON.stringify(getJsonParam),
876
875
  etModel: JSON.stringify(etModelInfo || {}),
877
876
  pname: this.logPname,
878
877
  pparam: JSON.stringify(this.routerInfo.params),
879
878
  target: this.routerInfo.path,
880
879
  pageId: this.logPageId,
881
880
  ...otherParams,
882
881
  };
883
882
  global.miniAppLogInstance && global.miniAppLogInstance['exposure'](miniLogParams);
884
883
  }
885
884
  }
886
885
 
887
886
  initOpenTriggerExposure(type) {
888
887
  if (!this.sectionExposureInfo[type]) {
889
888
  Taro.nextTick(() => {
890
889
  setTimeout(() => {
891
890
  global.info.pageInfo.isExposureState = true;
892
891
  taroEventInitExposure();
893
892
  this.sectionExposureInfo[`${type}`] = true;
894
893
  }, 200);
895
894
  });
896
895
  }
897
896
  }
897
+ import Taro from '@tarojs/taro';
898
898
  JUMP_MEMBER_CHANNEL,
899
899
  SECTION_HOME_TAB_NAME_TYPE,
900
900
  SECTION_HOME_TAB_TYPE,
901
901
  SHOP_MENU_ID_NAME,
902
902
  SHOP_MENU_ID_TYPE,
903
903
  routerInfo: {
904
904
  params: {},
905
905
  },
906
906
  nativeEvent: null,
907
907
  logPageParamStr: '',
908
908
  public jingGouMiniState: boolean;
909
909
  public logPageId: string;
910
910
  public logPageParamStr: string;
911
911
  public nativeEvent: any;
912
912
  public routerInfo: JumpEventReportInterFace.RouterInfo;
913
913
  public logPname: LogPnameInfo;
914
914
  public jumpMiniPath: JumpEventReportInterFace.JumpMiniPath;
915
915
  public jumpWebUrl: JumpEventReportInterFace.jumpWebUrl;
916
916
  public sectionExposureInfo: object;
917
917
  public logPageIdInfo: any;
918
918
  public logPnameInfo: any;
919
919
  constructor(opt = {}) {
920
920
  this.logPageId = LogPageIdInfo.APP;
921
921
  this.logPageIdInfo = LogPageIdInfo;
922
922
  this.logPnameInfo = LogPnameInfo;
923
923
  this.jingGouMiniState = false;
924
924
  this.jumpMiniPath = JumpMiniPath;
925
925
  this.jumpWebUrl = JumpWebUrl;
926
926
  this.sectionExposureInfo = {};
927
927
  this.getConfig(opt);
928
928
  }
929
929
  getConfig(opt) {
930
930
  return Object.assign(this, {}, defaultConfig, opt);
931
931
  }
932
932
 
933
933
  updateInfo(routerInfo, logPname = LogPnameInfo.HOME, pageId = LogPageIdInfo.APP) {
934
934
  this.routerInfo = routerInfo;
935
935
  this.logPname = logPname;
936
936
  this.logPageId = pageId;
937
937
  }
938
938
  reportInfoPv(_pageId, _opt = {}) { }
939
939
 
940
940
  getShopIdOrVenderIdParams(
941
941
  params: JumpEventReportInterFace.ShopIdsInfo = {},
942
942
  ): JumpEventReportInterFace.ShopIdsInfo {
943
943
  const setParams = {};
944
944
  params.shopId && (setParams['shopId'] = `${params.shopId}`);
945
945
  params.venderId && (setParams['venderId'] = `${params.venderId}`);
946
946
  return setParams;
947
947
  }
948
948
 
949
949
  getShopIdsInfo(params = {}): JumpEventReportInterFace.ShopIdsInfo {
950
950
  let setParams = this.getShopIdOrVenderIdParams(params);
951
951
  setParams = {
952
952
  ...params,
953
953
  ...setParams,
954
954
  };
955
955
  return setParams;
956
956
  }
957
957
 
958
958
  jdJumpToShopHome(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
959
959
  console.log('[降级H5] jdJumpToShopHome base');
960
960
  const currentShopInfo = {
961
961
  shopId: global.info.queryInfo.shopId,
962
962
  venderId: global.info.queryInfo.venderId,
963
963
  };
964
964
  const restParams =
965
965
  (shopInfo?.shopId && shopInfo.shopId !== currentShopInfo.shopId) ||
966
966
  (shopInfo?.venderId && shopInfo.venderId !== currentShopInfo.venderId)
967
967
  ? {}
968
968
  : currentShopInfo;
969
969
  const getInfo = Object.assign({}, restParams, shopInfo);
970
970
  this.jdJumpToShopBase(getInfo);
971
971
  }
972
972
 
973
973
  jdJumpToShopHomeInner(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
974
974
  this.jdJumpToShopHome(shopInfo);
975
975
  }
976
976
 
977
977
  jdJumpToShopBase(shopInfo) {
978
978
  console.log('[降级H5] jdJumpToShopBase');
979
979
  this.jdNavigateToNative(
980
980
  `${this.jumpMiniPath.shop}?${objectToUrlEncode(this.getShopIdOrVenderIdParams(shopInfo))}`,
981
981
  {
982
982
  ...shopInfo,
983
983
  },
984
984
  );
985
985
  }
986
986
 
987
987
  jdJumpToShopLight(shopInfo) {
988
988
  this.jdNavigateToNative(
989
989
  `${this.jumpMiniPath.shopLight}?${objectToUrlEncode(
990
990
  this.getShopIdOrVenderIdParams(shopInfo),
991
991
  )}`,
992
992
  {
993
993
  ...shopInfo,
994
994
  },
995
995
  );
996
996
  }
997
997
 
998
998
  jdJumpToProduct(skuIds, logEventInfo) {
999
999
  skuIds = skuIds.toString().trim();
1000
1000
  const getSkuId = skuIds.indexOf(',') !== -1 ? skuIds.split(',')[0] : skuIds;
1001
1001
  this.jdNavigateToNative(`${this.jumpMiniPath.detail}?sku=${getSkuId}`, logEventInfo);
1002
1002
  }
1003
1003
 
1004
1004
  jdJumpSkuInfoToProduct(skuInfo: any = {}, logEventInfo) {
1005
1005
  const getSkuId = skuInfo?.skuId;
1006
1006
  getSkuId &&
1007
1007
  this.jdNavigateToNative(`${this.jumpMiniPath.detail}?sku=${getSkuId}`, logEventInfo);
1008
1008
  }
1009
1009
 
1010
1010
  jdJumpToCartPage(logEventInfo) {
1011
1011
  console.log('跳转到购物车页面', logEventInfo);
1012
1012
  }
1013
1013
 
1014
1014
  jdJumpToFlashSaleTab(_logEventInfo) {
1015
1015
  console.log('跳转闪购', _logEventInfo);
1016
1016
  }
1017
1017
 
1018
1018
 
1019
1019
  jdJumpToShopMemberInfo(logEventInfo) {
1020
1020
  console.log('跳转修改会员信息页', logEventInfo);
1021
1021
  }
1022
1022
 
1023
1023
  jdJumpToShopMemberPointDetail(logEventInfo) {
1024
1024
  const venderId = global.info.queryInfo.venderId;
1025
1025
  const shopId = global.info.queryInfo.shopId;
1026
1026
  this.jdJumpToWeb(
1027
1027
  `${this.jumpWebUrl.memberScores}?venderId=${venderId}&shopId=${shopId}`,
1028
1028
  logEventInfo,
1029
1029
  );
1030
1030
  }
1031
1031
 
1032
1032
  jdJumpToShopMemberBenefit(logEventInfo) {
1033
1033
  const venderId = global.info.queryInfo.venderId;
1034
1034
  const shopId = global.info.queryInfo.shopId;
1035
1035
  this.jdJumpToWeb(
1036
1036
  `${this.jumpWebUrl.memberBenefit}?venderId=${venderId}&shopId=${shopId}`,
1037
1037
  logEventInfo,
1038
1038
  );
1039
1039
  }
1040
1040
 
1041
1041
  jdJumpToShopMemberRule(logEventInfo) {
1042
1042
  const venderId = global.info.queryInfo.venderId;
1043
1043
  const shopId = global.info.queryInfo.shopId;
1044
1044
  console.log('会员规则页h5 global.info', global.info);
1045
1045
  this.jdJumpToWeb(
1046
1046
  `${this.jumpWebUrl.shopMemberRule}?venderId=${venderId}&shopId=${shopId}&sign=member`,
1047
1047
  logEventInfo,
1048
1048
  );
1049
1049
  }
1050
1050
 
1051
1051
  jdJumpToShopMemberCloseAccount(venderType, logEventInfo) {
1052
1052
  const venderId = global.info.queryInfo.venderId;
1053
1053
  const shopId = global.info.queryInfo.shopId;
1054
1054
  console.log('注销会员页h5 global.info', global.info);
1055
1055
  this.jdJumpToWeb(
1056
1056
  `${this.jumpWebUrl.shopMemberCloseAccount}?venderId=${venderId}&shopId=${shopId}&venderType=${venderType}`,
1057
1057
  logEventInfo,
1058
1058
  );
1059
1059
  }
1060
1060
 
1061
1061
  jdJumpToShopMemberPointExchange(venderType, levelZeroMenuUrl, logEventInfo) {
1062
1062
  const venderId = global.info.queryInfo.venderId;
1063
1063
  const shopId = global.info.queryInfo.shopId;
1064
1064
  const channel = JUMP_MEMBER_CHANNEL.H5;
1065
1065
  this.jdJumpToWeb(
1066
1066
  `${this.jumpWebUrl.shopMemberPointExchange}?venderId=${venderId}&shopId=${shopId}&venderType=${venderType}&channel=${channel}&levelZeroMenuUrl=${levelZeroMenuUrl}`,
1067
1067
  logEventInfo,
1068
1068
  );
1069
1069
  }
1070
1070
 
1071
1071
  jdJumpToShopMemberBonusPurchase(customerLevel, logEventInfo) {
1072
1072
  const venderId = global.info.queryInfo.venderId;
1073
1073
  const shopId = global.info.queryInfo.shopId;
1074
1074
  this.jdJumpToWeb(
1075
1075
  `${this.jumpWebUrl.shopMemberBonusPurchase}?venderId=${venderId}&shopId=${shopId}&customerLevel=${customerLevel}`,
1076
1076
  logEventInfo,
1077
1077
  );
1078
1078
  }
1079
1079
 
1080
1080
  jdJumpToShopMemberGood(customerLevel, logEventInfo) {
1081
1081
  const venderId = global.info.queryInfo.venderId;
1082
1082
  const shopId = global.info.queryInfo.shopId;
1083
1083
  this.jdJumpToWeb(
1084
1084
  `${this.jumpWebUrl.shopMemberGood}?venderId=${venderId}&shopId=${shopId}&customerLevel=${customerLevel}`,
1085
1085
  logEventInfo,
1086
1086
  );
1087
1087
  }
1088
1088
 
1089
1089
  jdJumpToBeanDetail(logEventInfo) {
1090
1090
  console.log('this.jumpWebUrl.beanDetail', this.jumpWebUrl.beanDetail);
1091
1091
  this.jdJumpToWeb(`${this.jumpWebUrl.beanDetail}?source=dianpuhuiyuan`, logEventInfo);
1092
1092
  }
1093
1093
 
1094
1094
  jdJumpToMyRedEnvelope(logEventInfo) {
1095
1095
  this.jdJumpToWeb(this.jumpWebUrl.myRedPacketList, logEventInfo);
1096
1096
  }
1097
1097
 
1098
1098
  jdJumpToMyCoupon(logEventInfo) {
1099
1099
  this.jdJumpToWeb(this.jumpWebUrl.myCouponList, logEventInfo);
1100
1100
  }
1101
1101
 
1102
1102
  jdJumpToNewH5MemberCard(logEventInfo?) {
1103
1103
  const venderId = global.info.queryInfo.venderId;
1104
1104
  const shopId = global.info.queryInfo.shopId;
1105
1105
  this.jdJumpToWeb(
1106
1106
  `${this.jumpWebUrl.shopH5MemberCardM}?venderId=${venderId}&shopId=${shopId}`,
1107
1107
  logEventInfo,
1108
1108
  );
1109
1109
  }
1110
1110
 
1111
1111
 
1112
1112
  jdJumpToTabAllProduct(shopId, venderId, logEventInfo = {}) {
1113
1113
  console.log('base.ts - jdJumpToTabAllProduct');
1114
1114
  if (typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId;
1115
1115
  if (typeof venderId === 'undefined') venderId = global.info.queryInfo.venderId;
1116
1116
  this.jdJumpToWeb(
1117
1117
  `${this.jumpWebUrl.pages}?shopId=${shopId}&venderId=${venderId}&tabActive=home-product`,
1118
1118
  logEventInfo,
1119
1119
  );
1120
1120
  }
1121
1121
 
1122
1122
  jdJumpToTabAllProductInner(shopId, venderId, logEventInfo = {}) {
1123
1123
  if (typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId;
1124
1124
  if (typeof venderId === 'undefined') venderId = global.info.queryInfo.venderId;
1125
1125
  this.jdJumpToTabAllProduct(shopId, venderId, logEventInfo);
1126
1126
  }
1127
1127
 
1128
1128
  jdJumpToTopTabBase(type, shopInfo = {}) {
1129
1129
  const getInfo = Object.assign(
1130
1130
  {},
1131
1131
  {
1132
1132
  shopId: global.info.queryInfo.shopId,
1133
1133
  venderId: global.info.queryInfo.venderId,
1134
1134
  },
1135
1135
  shopInfo,
1136
1136
  );
1137
1137
  this.jdJumpToWeb(
1138
1138
  `${this.jumpWebUrl.shopHome}?${objectToUrlEncode(
1139
1139
  this.getShopIdOrVenderIdParams(getInfo),
1140
1140
  )}&tabActive=${type}`,
1141
1141
  getInfo,
1142
1142
  );
1143
1143
  }
1144
1144
 
1145
1145
  jdJumpToTabNew(shopInfo = {}) {
1146
1146
  console.log('上新tab');
1147
1147
  this.jdJumpToTopTabBase(
1148
1148
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_NEW_PRODUCT],
1149
1149
  shopInfo,
1150
1150
  );
1151
1151
  }
1152
1152
 
1153
1153
  jdJumpToTabNewInner(shopInfo = {}) {
1154
1154
  this.jdJumpToTabNew(shopInfo);
1155
1155
  }
1156
1156
 
1157
1157
  jdJumpToTabRank(shopInfo = {}) {
1158
1158
  console.log('榜单tab');
1159
1159
  this.jdJumpToTopTabBase(SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_RANK], shopInfo);
1160
1160
  }
1161
1161
  jdJumpToTabRankInner(shopInfo = {}) {
1162
1162
  this.jdJumpToTabRank(shopInfo);
1163
1163
  }
1164
1164
  jdJumpToTabBuyerShow(shopInfo = {}) {
1165
1165
  console.log('买家秀tab');
1166
1166
  this.jdJumpToTopTabBase(
1167
1167
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_BUYER_SHOW],
1168
1168
  shopInfo,
1169
1169
  );
1170
1170
  }
1171
1171
  jdJumpToTabBuyerShowInner(shopInfo = {}) {
1172
1172
  this.jdJumpToTabBuyerShow(shopInfo);
1173
1173
  }
1174
1174
  jdJumpToTabActivity(shopInfo = {}) {
1175
1175
  console.log('活动tab');
1176
1176
  this.jdJumpToTopTabBase(
1177
1177
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_ACTIVITY],
1178
1178
  shopInfo,
1179
1179
  );
1180
1180
  }
1181
1181
  jdJumpToTabActivityInner(shopInfo = {}) {
1182
1182
  this.jdJumpToTabActivity(shopInfo);
1183
1183
  }
1184
1184
  jdJumpToTabSecKill(shopInfo = {}) {
1185
1185
  console.log('秒杀tab');
1186
1186
  this.jdJumpToTopTabBase(
1187
1187
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_SECKILL],
1188
1188
  shopInfo,
1189
1189
  );
1190
1190
  }
1191
1191
  jdJumpToTabSecKillInner(shopInfo = {}) {
1192
1192
  this.jdJumpToTabSecKill(shopInfo);
1193
1193
  }
1194
1194
 
1195
1195
  jdJumpToBottomTabBase(type, shopInfo = {}) {
1196
1196
  this.jdJumpToTopTabBase(type, shopInfo);
1197
1197
  }
1198
1198
  jdJumpToBottomTabProduct(shopInfo = {}) {
1199
1199
  this.jdJumpToBottomTabBase(SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.PRODUCT], shopInfo);
1200
1200
  }
1201
1201
  jdJumpToBottomTabCategory(shopInfo = {}) {
1202
1202
  this.jdJumpToBottomTabBase(SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.CLASSIFY], shopInfo);
1203
1203
  }
1204
1204
  jdJumpToBottomTabFind(shopInfo = {}) {
1205
1205
  console.log('发现tab');
1206
1206
  }
1207
1207
  jdJumpToBottomTabBrandMember(shopInfo = {}) {
1208
1208
  const getInfo = Object.assign(
1209
1209
  {},
1210
1210
  {
1211
1211
  shopId: global.info.queryInfo.shopId,
1212
1212
  venderId: global.info.queryInfo.venderId,
1213
1213
  },
1214
1214
  shopInfo,
1215
1215
  );
1216
1216
  this.jdJumpToWeb(
1217
1217
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(this.getShopIdOrVenderIdParams(getInfo))}`,
1218
1218
  getInfo,
1219
1219
  );
1220
1220
  }
1221
1221
  jdJumpToBottomTabBrandMemberInner(shopInfo = {}) {
1222
1222
  this.jdJumpToBottomTabBrandMember(shopInfo);
1223
1223
  }
1224
1224
 
1225
1225
  jdJumpToAppHome(logEventInfo) {
1226
1226
  this.jdJumpToWeb(`${this.jumpWebUrl.mobileHome}?originReferer=shopx`, logEventInfo);
1227
1227
  }
1228
1228
 
1229
1229
  jdJumpToShopSearch(queryParams) {
1230
1230
  const getInfo = Object.assign(
1231
1231
  {},
1232
1232
  {
1233
1233
  shopId: global.info.queryInfo.shopId,
1234
1234
  venderId: global.info.queryInfo.venderId,
1235
1235
  },
1236
1236
  queryParams,
1237
1237
  );
1238
1238
  const {
1239
1239
  shopId,
1240
1240
  categoryId,
1241
1241
  keyword,
1242
1242
  pageId,
1243
1243
  description,
1244
1244
  shopName,
1245
1245
  keyWord,
1246
1246
  seller_actId,
1247
1247
  seller_actType,
1248
1248
  } = getInfo;
1249
1249
  const cateId = categoryId
1250
1250
  ? `&cateId=${typeof categoryId === 'string' ? categoryId?.trim() : categoryId}`
1251
1251
  : '';
1252
1252
  const addKeyWord = keyword || keyWord ? `&keyword=${keyword || keyWord}` : '';
1253
1253
  const addPageId = pageId ? `&pageId=${pageId}` : '';
1254
1254
  const searchDes = description ? `&description=${description}` : '';
1255
1255
  const shopNameDes = shopName ? `&shopName=${shopName}` : '';
1256
1256
  const searchType = categoryId ? 5 : keyword || keyWord ? 4 : 3;
1257
1257
  const activityId = seller_actId ? `&activityId=${seller_actId}` : '';
1258
1258
  const activityType = seller_actType ? `&activityType=${seller_actType}` : '';
1259
1259
  this.jdJumpToWeb(
1260
1260
  `${this.jumpWebUrl.shopSearch}?shopId=${shopId}&searchType=${searchType}${cateId}${addKeyWord}${addPageId}${searchDes}${shopNameDes}${activityId}${activityType}`,
1261
1261
  getInfo,
1262
1262
  );
1263
1263
  }
1264
1264
 
1265
1265
  jdJumpToSearch(shopId, suggestWord) {
1266
1266
  console.log('搜索中间页');
1267
1267
  }
1268
1268
 
1269
1269
  jdJumpToOrderList() {
1270
1270
  console.warn('触发基类的jdJumpToOrderList,这不是一个期望的结果,应该调用各端子类来实现');
1271
1271
  }
1272
1272
 
1273
1273
  jdJumpToCouponSearchProductList(couponId, logEventInfo = {}) {
1274
1274
  this.jdJumpToWeb(
1275
1275
  `${this.jumpWebUrl.couponSearch}?couponbatch=${couponId}&sceneval=2`,
1276
1276
  logEventInfo,
1277
1277
  );
1278
1278
  }
1279
1279
 
1280
1280
  jdJumpToWeb(
1281
1281
  spUrl,
1282
1282
  logEventInfo,
1283
1283
  successBack?: functionType | undefined,
1284
1284
  failBack?: functionType | undefined,
1285
1285
  ) {
1286
1286
  this.jdNavigateToNative(
1287
1287
  `${this.jumpMiniPath.h5}?encode_url=` + encodeURIComponent(spUrl),
1288
1288
  {
1289
1289
  ...logEventInfo,
1290
1290
  },
1291
1291
  successBack,
1292
1292
  failBack,
1293
1293
  );
1294
1294
  }
1295
1295
 
1296
1296
  jdJumpToWebInner(url, logEventInfo) {
1297
1297
  this.jdJumpToWeb(url, logEventInfo);
1298
1298
  }
1299
1299
 
1300
1300
  weappRedirectToWeb(url: string, logEventInfo: JumpEventReportInterFace.OptEventLogParams = {}) {
1301
1301
  console.log('weappRedirectToWeb base:', url, logEventInfo);
1302
1302
  }
1303
1303
 
1304
1304
  jdJumpToLive(liveInfo, logEventInfo = {}) {
1305
1305
  if (liveInfo?.liveId) {
1306
1306
  this.jdJumpToWeb(`${this.jumpWebUrl.mLive}/${liveInfo?.liveId}?origin=30`, logEventInfo);
1307
1307
  }
1308
1308
  }
1309
1309
 
1310
1310
  jdJumpToUgcContent(urlObj, logEventInfo = {}) {
1311
1311
  if (typeof urlObj === 'object') {
1312
1312
  this.jdJumpToWeb(
1313
1313
  `${this.jumpWebUrl.shopUseShareOrderUgcContent}?${objectToUrlEncode(urlObj)}`,
1314
1314
  { logEventInfo },
1315
1315
  );
1316
1316
  } else {
1317
1317
  const getShopUgcParams = this.jdOpenAppParams(urlObj);
1318
1318
  console.log('getShopUgcParams=====', getShopUgcParams);
1319
1319
  if (getShopUgcParams) {
1320
1320
  getShopUgcParams['category'] && delete getShopUgcParams['category'];
1321
1321
  getShopUgcParams['des'] && delete getShopUgcParams['des'];
1322
1322
  this.jdJumpToWeb(
1323
1323
  `${this.jumpWebUrl.shopUseShareOrderUgcContent}?${objectToUrlEncode(
1324
1324
  getShopUgcParams as object,
1325
1325
  )}`,
1326
1326
  { logEventInfo },
1327
1327
  );
1328
1328
  }
1329
1329
  }
1330
1330
  }
1331
1331
 
1332
1332
  jdJumpToRankList(contentId: string | number, rankType = 10, logEventInfo) {
1333
1333
  const rankUrl = `${this.jumpWebUrl.rank}?contentId=${contentId}&sku=&rankType=${rankType}&fromName=dcpws&hideAd=1`
1334
1334
  this.jdJumpToWeb(rankUrl, {
1335
1335
  contentId,
1336
1336
  ...logEventInfo,
1337
1337
  })
1338
1338
  }
1339
1339
 
1340
1340
  jdJumpToShopActivity(shopInfo) {
1341
1341
  const getParams = Object.assign(
1342
1342
  {},
1343
1343
  {
1344
1344
  category: 'jump',
1345
1345
  des: 'jshopActivity',
1346
1346
  shopId: global.info.queryInfo.shopId,
1347
1347
  venderId: global.info.queryInfo.venderId,
1348
1348
  },
1349
1349
  shopInfo,
1350
1350
  );
1351
1351
  getParams['projectId'] && (getParams['projectId'] = `${getParams['projectId']}`);
1352
1352
  }
1353
1353
 
1354
1354
  jdJumpToShopMember(shopInfo) {
1355
1355
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo);
1356
1356
  this.jdJumpToWeb(`${this.jumpWebUrl.shopMember}?${objectToUrlEncode(getShopInfo)}`, shopInfo);
1357
1357
  }
1358
1358
 
1359
1359
  jdJumpToMemberTab(shopInfo?) {
1360
1360
  console.log('店内跳转会员tab', shopInfo);
1361
1361
  }
1362
1362
 
1363
1363
  jdJumpToShopMemberCard(shopInfo) {
1364
1364
  const { logEventInfo } = shopInfo;
1365
1365
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo);
1366
1366
  this.jdJumpToWeb(
1367
1367
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(getShopInfo)}`,
1368
1368
  logEventInfo,
1369
1369
  );
1370
1370
  }
1371
1371
 
1372
1372
  jdJumpToTotalPromotion(shopInfo) {
1373
1373
  const { url, logEventInfo } = shopInfo;
1374
1374
  if (this.isOpenJdAppUrl(url)) {
1375
1375
  const getOpenAppParams: any = this.jdOpenAppParams(url);
1376
1376
  if (getOpenAppParams) {
1377
1377
  if (getOpenAppParams?.activityId) {
1378
1378
  this.jdJumpToWeb(
1379
1379
  `${this.jumpWebUrl.totalPromotion}?activity_id=${getOpenAppParams?.activityId}`,
1380
1380
  shopInfo,
1381
1381
  );
1382
1382
  }
1383
1383
  }
1384
1384
  } else {
1385
1385
  this.jdJumpToWeb(url, logEventInfo);
1386
1386
  }
1387
1387
  }
1388
1388
 
1389
1389
  jdJumpToDongDongChatGroup(groupId, source = 'jdmini') {
1390
1390
  console.warn(
1391
1391
  'JdJumpToDongDongChatGroup method is invoked, but should be implemented in subclasses',
1392
1392
  );
1393
1393
  }
1394
1394
 
1395
1395
  jdJumpToDongDongChat(paramInfo) {
1396
1396
  const getInfo = Object.assign(
1397
1397
  {},
1398
1398
  {
1399
1399
  venderId: global.info.queryInfo.venderId,
1400
1400
  },
1401
1401
  paramInfo,
1402
1402
  );
1403
1403
  const { venderId = '1', entry = 'm_shop', ...otherInfo } = getInfo;
1404
1404
  const dongdongUrl = `${this.jumpWebUrl.dongDongChat}?venderId=${venderId}&entry=${entry}&sceneval=2`;
1405
1405
  this.jdJumpToWeb(dongdongUrl, otherInfo);
1406
1406
  }
1407
1407
 
1408
1408
  jdJumpToShopDetail(shopInfo) {
1409
1409
  const getInfo = Object.assign(
1410
1410
  {},
1411
1411
  {
1412
1412
  shopId: global.info.queryInfo.shopId,
1413
1413
  venderId: global.info.queryInfo.venderId,
1414
1414
  },
1415
1415
  shopInfo,
1416
1416
  );
1417
1417
  const getShopInfo = this.getShopIdOrVenderIdParams(getInfo);
1418
1418
  this.jdJumpToWeb(`${this.jumpWebUrl.shopIntroduce}?${objectToUrlEncode(getShopInfo)}`, getInfo);
1419
1419
  }
1420
1420
 
1421
1421
  jdJumpToShopLottery(shopTotalInfo) {
1422
1422
  const getInfo = Object.assign(
1423
1423
  {},
1424
1424
  {
1425
1425
  shopId: global.info.queryInfo.shopId,
1426
1426
  venderId: global.info.queryInfo.venderId,
1427
1427
  },
1428
1428
  shopTotalInfo,
1429
1429
  );
1430
1430
  const getShopInfo = this.getShopIdOrVenderIdParams(getInfo);
1431
1431
  this.jdJumpToWeb(`${this.jumpWebUrl.shopLottery}?${objectToUrlEncode(getShopInfo)}`, getInfo);
1432
1432
  }
1433
1433
 
1434
1434
  jdJumpToSageAuthorHome(shopTotalInfo) {
1435
1435
  const { logEventInfo, ...otherParams } = shopTotalInfo;
1436
1436
  const getInfo = Object.assign(
1437
1437
  {},
1438
1438
  {
1439
1439
  channel: 'shopHomePage',
1440
1440
  selectTab: '0',
1441
1441
  },
1442
1442
  otherParams,
1443
1443
  );
1444
1444
  this.jdJumpToWeb(`${this.jumpWebUrl.sageAuthorHome}?${objectToUrlEncode(getInfo)}`, {
1445
1445
  ...getInfo,
1446
1446
  ...logEventInfo,
1447
1447
  });
1448
1448
  }
1449
1449
 
1450
1450
  jdJumpToOrderInfoView(skuInfos, logEventInfo) {
1451
1451
  console.log(
1452
1452
  '🚀 ~ 跳转结算页 JumpEventReportBase ~ jdJumpToOrderInfoView ~ skuInfos, logEventInfo:',
1453
1453
  skuInfos,
1454
1454
  logEventInfo,
1455
1455
  );
1456
1456
  }
1457
1457
 
1458
1458
  jdJumpToMiniProgram({ appId, path, param = {} }: JumpEventReportInterFace.LinkMiniParams) {
1459
1459
  const pageName = param['pageType'] || 'home';
1460
1460
  path = `pages/${pageName}/index`;
1461
1461
  if (appId === global.info.pageInfo?.appId) {
1462
1462
  Taro.navigateTo({
1463
1463
  url: `/${path}?${objectToUrlEncode(param)}`,
1464
1464
  }).catch((err) => {
1465
1465
  console.warn('跳转小程序页面错误:', err);
1466
1466
  });
1467
1467
  } else {
1468
1468
  console.log('一个小程序跳转到另一个小程序暂无此业务');
1469
1469
  }
1470
1470
  }
1471
1471
 
1472
1472
  jdJumpToAppMiniProgram(
1473
1473
  path: string,
1474
1474
  param = {},
1475
1475
  successBack?: functionType,
1476
1476
  failBack?: functionType,
1477
1477
  ) {
1478
1478
  this.jdNavigateToNative(path, param, successBack, failBack);
1479
1479
  }
1480
1480
 
1481
1481
  jdJumpConfigUrl(detail, logEventInfo = {}) {
1482
1482
  const { configDataType, configDataValue } = detail;
1483
1483
  switch (configDataType) {
1484
1484
  case LinkConfigType.CONFIG_TYPE_SKU_LIST:
1485
1485
  if (logEventInfo?.jsonParam?.logBaseInfo?.mInfo) {
1486
1486
  logEventInfo.jsonParam.logBaseInfo.mInfo.skuid = configDataValue.skuIds;
1487
1487
  }
1488
1488
  this.jdJumpToProduct(configDataValue.skuIds, logEventInfo);
1489
1489
  break;
1490
1490
  case LinkConfigType.CONFIG_TYPE_COUPON_LIST:
1491
1491
  this.jdJumpToWeb(
1492
1492
  `${this.jumpWebUrl.shopCoupon}?couponType=1&shopId=${global.info.queryInfo.shopId}&venderId=${global.info.queryInfo.venderId}`,
1493
1493
  logEventInfo,
1494
1494
  );
1495
1495
  break;
1496
1496
  case LinkConfigType.CONFIG_TYPE_CATEGORY:
1497
1497
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1498
1498
  const getShopSearchParams = this.jdOpenAppParams(configDataValue.clickUrl);
1499
1499
  getShopSearchParams &&
1500
1500
  this.jdJumpToShopSearch(
1501
1501
  Object.assign({}, getShopSearchParams, {
1502
1502
  logEventInfo,
1503
1503
  }),
1504
1504
  );
1505
1505
  } else {
1506
1506
  this.jdJumpToShopSearch(
1507
1507
  configDataValue['cid']
1508
1508
  ? Object.assign(
1509
1509
  {},
1510
1510
  {
1511
1511
  shopId: global.info.queryInfo.shopId,
1512
1512
  categoryId: configDataValue.cid,
1513
1513
  logEventInfo,
1514
1514
  },
1515
1515
  )
1516
1516
  : {
1517
1517
  shopId: global.info.queryInfo.shopId,
1518
1518
  logEventInfo,
1519
1519
  },
1520
1520
  );
1521
1521
  }
1522
1522
  break;
1523
1523
  case LinkConfigType.CONFIG_TYPE_MEMBER:
1524
1524
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1525
1525
  const getShopMemberParams = this.jdOpenAppParams(configDataValue.clickUrl);
1526
1526
  getShopMemberParams &&
1527
1527
  this.jdJumpToShopMember(
1528
1528
  Object.assign({}, getShopMemberParams, {
1529
1529
  logEventInfo,
1530
1530
  }),
1531
1531
  );
1532
1532
  } else {
1533
1533
  this.jdJumpToShopMember({
1534
1534
  shopId: global.info.queryInfo.shopId,
1535
1535
  venderId: configDataValue.shopDetail,
1536
1536
  logEventInfo,
1537
1537
  });
1538
1538
  }
1539
1539
  break;
1540
1540
  case LinkConfigType.CONFIG_TYPE_SHOP_ACTIVITY:
1541
1541
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1542
1542
  const getShopActivityParams = this.jdOpenAppParams(configDataValue.clickUrl);
1543
1543
  getShopActivityParams &&
1544
1544
  this.jdJumpToShopActivity(
1545
1545
  Object.assign({}, getShopActivityParams, {
1546
1546
  logEventInfo,
1547
1547
  }),
1548
1548
  );
1549
1549
  } else if (configDataValue['projectId']) {
1550
1550
  this.jdJumpToShopActivity({
1551
1551
  projectId: configDataValue['projectId'],
1552
1552
  configDataValue,
1553
1553
  logEventInfo,
1554
1554
  });
1555
1555
  }
1556
1556
  break;
1557
1557
  case LinkConfigType.CONFIG_TYPE_CUSTOM_LINK:
1558
1558
  case LinkConfigType.CONFIG_TYPE_FINANCE_COUPON: {
1559
1559
  const _url = configDataValue.linkUrl;
1560
1560
  if (
1561
1561
  _url.indexOf('to=') === -1 &&
1562
1562
  _url.indexOf(`${domain.mshop.replace(/https?:/, '')}/?shopId=`) !== -1
1563
1563
  ) {
1564
1564
  const _shopId = _url.match(/\d+/g)[0];
1565
1565
  this.jdJumpToShopHome({
1566
1566
  shopId: `${_shopId}`,
1567
1567
  logEventInfo,
1568
1568
  });
1569
1569
  } else if (this.isOpenJdAppUrl(_url)) {
1570
1570
  const getOpenAppParams = this.jdOpenAppParams(_url);
1571
1571
  console.log('获取解析后的参数结果', getOpenAppParams);
1572
1572
  if (getOpenAppParams) {
1573
1573
  isJdApp
1574
1574
  ? this.jdNavigateToNative(
1575
1575
  Object.assign({}, getOpenAppParams, {
1576
1576
  logEventInfo,
1577
1577
  }),
1578
1578
  )
1579
1579
  : this.jdNavigateToNative(
1580
1580
  '',
1581
1581
  Object.assign({}, getOpenAppParams, {
1582
1582
  logEventInfo,
1583
1583
  }),
1584
1584
  );
1585
1585
  } else {
1586
1586
  this.jdNavigateToNative(
1587
1587
  '',
1588
1588
  Object.assign({}, getOpenAppParams, {
1589
1589
  logEventInfo,
1590
1590
  }),
1591
1591
  );
1592
1592
  }
1593
1593
  } else {
1594
1594
  this.jdJumpToWeb(_url, logEventInfo);
1595
1595
  }
1596
1596
  break;
1597
1597
  }
1598
1598
  case LinkConfigType.CONFIG_TYPE_JSHOP_DETAIL:
1599
1599
  this.jdJumpToShopDetail({
1600
1600
  venderId: global.info.queryInfo.venderId,
1601
1601
  shopId: global.info.queryInfo.shopId,
1602
1602
  logEventInfo,
1603
1603
  });
1604
1604
  break;
1605
1605
  case LinkConfigType.CONFIG_TYPE_SHOP_HOME:
1606
1606
  this.jdJumpToShopHome({
1607
1607
  ...configDataValue,
1608
1608
  logEventInfo,
1609
1609
  });
1610
1610
  break;
1611
1611
  case LinkConfigType.CONFIG_TYPE_ANCHOR_POINT:
1612
1612
  break;
1613
1613
  case LinkConfigType.CONFIG_TYPE_SHOPPING_GUIDE:
1614
1614
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1615
1615
  const getShoppingGuideParams = this.jdOpenAppParams(configDataValue.clickUrl);
1616
1616
  getShoppingGuideParams &&
1617
1617
  this.jdJumpToShopActivity(
1618
1618
  Object.assign({}, getShoppingGuideParams, {
1619
1619
  logEventInfo,
1620
1620
  }),
1621
1621
  );
1622
1622
  }
1623
1623
  break;
1624
1624
  case LinkConfigType.CONFIG_TYPE_MINI_PROGRAM: {
1625
1625
  const linkUrl = decodeURIComponent(configDataValue?.linkUrl || '');
1626
1626
  const search = linkUrl.match(/\?.+/);
1627
1627
  if (search) {
1628
1628
  const miniQueryData: JumpEventReportInterFace.LinkMiniParams =
1629
1629
  parseQueryUrlString(linkUrl);
1630
1630
  try {
1631
1631
  miniQueryData.param = JSON.parse(<string>miniQueryData?.param);
1632
1632
  } catch (e) {
1633
1633
  console.warn('解析小程序 param 错误:', miniQueryData.param);
1634
1634
  }
1635
1635
  this.jdJumpToMiniProgram(miniQueryData);
1636
1636
  } else {
1637
1637
  console.warn('小程序地址错误:', linkUrl);
1638
1638
  }
1639
1639
  break;
1640
1640
  }
1641
1641
  case LinkConfigType.CONFIG_TYPE_SHOP_SEARCH: {
1642
1642
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1643
1643
  const getShopSearchParams = this.jdOpenAppParams(configDataValue.clickUrl);
1644
1644
  console.log('base 获取店铺结果落地页链接解析后的参数结果', getShopSearchParams);
1645
1645
  getShopSearchParams &&
1646
1646
  this.jdJumpToShopSearch(
1647
1647
  Object.assign({}, getShopSearchParams, {
1648
1648
  logEventInfo,
1649
1649
  }),
1650
1650
  );
1651
1651
  } else {
1652
1652
  this.jdJumpToWeb(configDataValue.clickUrl, logEventInfo);
1653
1653
  }
1654
1654
  break;
1655
1655
  }
1656
1656
  default:
1657
1657
  }
1658
1658
  }
1659
1659
 
1660
1660
  jdOpenAppParams(openAppUrl): object | boolean {
1661
1661
  let getParams: boolean | object = false;
1662
1662
  if (this.isOpenJdAppUrl(openAppUrl)) {
1663
1663
  try {
1664
1664
  getParams = openAppUrl.replace(/openApp\.jdMobile:\/\/virtual\?params=/i, '');
1665
1665
  getParams = JSON.parse(String(getParams));
1666
1666
  } catch (e) {
1667
1667
  console.log(e);
1668
1668
  }
1669
1669
  }
1670
1670
  return getParams;
1671
1671
  }
1672
1672
  isOpenJdAppUrl(openAppUrl) {
1673
1673
  return /openApp\.jdMobile:\/\/virtual\?params=/i.test(openAppUrl);
1674
1674
  }
1675
1675
 
1676
1676
  creatParamToLogStr(eventParam) {
1677
1677
  return eventParam
1678
1678
  ? Object.keys(eventParam)
1679
1679
  .map((key) => {
1680
1680
  return `${key}_${eventParam[key]}`;
1681
1681
  })
1682
1682
  .join('_')
1683
1683
  : '';
1684
1684
  }
1685
1685
 
1686
1686
  jdNavigateToNative(
1687
1687
  url: string,
1688
1688
  params: {
1689
1689
  logEventInfo?: object;
1690
1690
  } = {},
1691
1691
  successBack?: functionType | undefined,
1692
1692
  failBack?: functionType | undefined,
1693
1693
  ) {
1694
1694
  const { logEventInfo } = params;
1695
1695
  const getEparam = logEventInfo || params;
1696
1696
  console.log('jdNavigateToNative params: ', params);
1697
1697
  console.log('logEventInfo params: ', logEventInfo);
1698
1698
  try {
1699
1699
  this.clickEventLog(getEparam);
1700
1700
  } catch (e) {
1701
1701
  console.log(e);
1702
1702
  }
1703
1703
  setTimeout(() => {
1704
1704
  Taro.navigateTo({
1705
1705
  url,
1706
1706
  })
1707
1707
  .then((res) => {
1708
1708
  typeof successBack === 'function' && successBack(res);
1709
1709
  console.log('navigateToWxapp.success', res);
1710
1710
  })
1711
1711
  .catch((err) => {
1712
1712
  typeof failBack === 'function' && failBack(err);
1713
1713
  console.log('navigateToWxapp.fail', err);
1714
1714
  });
1715
1715
  }, 200);
1716
1716
  }
1717
1717
 
1718
1718
  clickEventLog(opts: JumpEventReportInterFace.OptEventLogParams = {}, clickKey = 'click') {
1719
1719
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts;
1720
1720
  if (eventId && jsonParam) {
1721
1721
  const { etModelInfo, logBaseInfo } = jsonParam;
1722
1722
  let getJsonParam = logBaseInfo || jsonParam;
1723
1723
  if (etModelInfo && logBaseInfo) {
1724
1724
  getJsonParam = logBaseInfo;
1725
1725
  } else {
1726
1726
  if (Array.isArray(jsonParam)) {
1727
1727
  getJsonParam = jsonParam;
1728
1728
  } else {
1729
1729
  getJsonParam = Object.assign(
1730
1730
  {},
1731
1731
  {
1732
1732
  shopid: global.info.queryInfo?.shopId,
1733
1733
  },
1734
1734
  jsonParam,
1735
1735
  );
1736
1736
  }
1737
1737
  }
1738
1738
  const miniClickKey = clickKey === 'addToCart' ? 'addToCart' : 'click';
1739
1739
  const miniLogParams = {
1740
1740
  eid: eventId,
1741
1741
  elevel: eventLevel,
1742
1742
  ext: JSON.stringify(getJsonParam),
1743
1743
  etModel: JSON.stringify(etModelInfo || {}),
1744
1744
  pname: this.logPname,
1745
1745
  pparam: JSON.stringify(this.routerInfo.params),
1746
1746
  target: this.routerInfo.path,
1747
1747
  event: this.nativeEvent,
1748
1748
  pageId: this.logPageId,
1749
1749
  ...otherParams,
1750
1750
  };
1751
1751
  console.log('点击埋点参数对象', miniLogParams, miniClickKey);
1752
1752
  global.miniAppLogInstance && global.miniAppLogInstance[miniClickKey](miniLogParams);
1753
1753
  }
1754
1754
  }
1755
1755
 
1756
1756
  exposureEventLog(opts: JumpEventReportInterFace.OptEventLogParams = {}) {
1757
1757
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts;
1758
1758
  if (eventId && jsonParam) {
1759
1759
  const { etModelInfo, logBaseInfo } = jsonParam;
1760
1760
  let getJsonParam = {};
1761
1761
  if (etModelInfo && logBaseInfo) {
1762
1762
  getJsonParam = logBaseInfo;
1763
1763
  } else {
1764
1764
  if (Array.isArray(jsonParam)) {
1765
1765
  getJsonParam = jsonParam;
1766
1766
  } else {
1767
1767
  getJsonParam = Object.assign(
1768
1768
  {},
1769
1769
  {
1770
1770
  shopid: global.info.queryInfo?.shopId,
1771
1771
  },
1772
1772
  jsonParam,
1773
1773
  );
1774
1774
  }
1775
1775
  }
1776
1776
  const miniLogParams = {
1777
1777
  eid: eventId,
1778
1778
  elevel: eventLevel,
1779
1779
  ext: JSON.stringify(getJsonParam),
1780
1780
  etModel: JSON.stringify(etModelInfo || {}),
1781
1781
  pname: this.logPname,
1782
1782
  pparam: JSON.stringify(this.routerInfo.params),
1783
1783
  target: this.routerInfo.path,
1784
1784
  pageId: this.logPageId,
1785
1785
  ...otherParams,
1786
1786
  };
1787
1787
  global.miniAppLogInstance && global.miniAppLogInstance['exposure'](miniLogParams);
1788
1788
  }
1789
1789
  }
1790
1790
 
1791
1791
  initOpenTriggerExposure(type) {
1792
1792
  if (!this.sectionExposureInfo[type]) {
1793
1793
  Taro.nextTick(() => {
1794
1794
  setTimeout(() => {
1795
1795
  global.info.pageInfo.isExposureState = true;
1796
1796
  taroEventInitExposure();
1797
1797
  this.sectionExposureInfo[`${type}`] = true;
1798
1798
  }, 200);
1799
1799
  });
1800
1800
  }
1801
1801
  }