@conecli/cone-render 0.10.1-shop3.85 → 0.10.1-shop3.86

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