@conecli/cone-render 0.10.1-shop-beta.20 → 0.10.1-shop-beta.21

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