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

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(miniQueryData?.param as string);
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 currentShopInfo = {
953
953
  shopId: global.info.queryInfo.shopId,
954
954
  venderId: global.info.queryInfo.venderId,
955
955
  };
956
956
  const restParams =
957
957
  (shopInfo?.shopId && shopInfo.shopId !== currentShopInfo.shopId) ||
958
958
  (shopInfo?.venderId && shopInfo.venderId !== currentShopInfo.venderId)
959
959
  ? {}
960
960
  : currentShopInfo;
961
961
  const getInfo = Object.assign({}, restParams, shopInfo);
962
962
  this.jdJumpToShopBase(getInfo);
963
963
  }
964
964
 
965
965
  jdJumpToShopHomeInner(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
966
966
  this.jdJumpToShopHome(shopInfo);
967
967
  }
968
968
 
969
969
  jdJumpToShopBase(shopInfo) {
970
970
  console.log('[降级H5] jdJumpToShopBase');
971
971
  this.jdNavigateToNative(
972
972
  `${this.jumpMiniPath.shop}?${objectToUrlEncode(this.getShopIdOrVenderIdParams(shopInfo))}`,
973
973
  {
974
974
  ...shopInfo,
975
975
  },
976
976
  );
977
977
  }
978
978
 
979
979
  jdJumpToShopLight(shopInfo) {
980
980
  this.jdNavigateToNative(
981
981
  `${this.jumpMiniPath.shopLight}?${objectToUrlEncode(
982
982
  this.getShopIdOrVenderIdParams(shopInfo),
983
983
  )}`,
984
984
  {
985
985
  ...shopInfo,
986
986
  },
987
987
  );
988
988
  }
989
989
 
990
990
  jdJumpToProduct(skuIds, logEventInfo) {
991
991
  skuIds = skuIds.toString().trim();
992
992
  const getSkuId = skuIds.indexOf(',') !== -1 ? skuIds.split(',')[0] : skuIds;
993
993
  this.jdNavigateToNative(`${this.jumpMiniPath.detail}?sku=${getSkuId}`, logEventInfo);
994
994
  }
995
995
 
996
996
  jdJumpSkuInfoToProduct(skuInfo: any = {}, logEventInfo) {
997
997
  const getSkuId = skuInfo?.skuId;
998
998
  getSkuId &&
999
999
  this.jdNavigateToNative(`${this.jumpMiniPath.detail}?sku=${getSkuId}`, logEventInfo);
1000
1000
  }
1001
1001
 
1002
1002
  jdJumpToFlashSaleTab(_logEventInfo) {
1003
1003
  console.log('跳转闪购', _logEventInfo);
1004
1004
  }
1005
1005
 
1006
1006
 
1007
1007
  jdJumpToShopMemberInfo(logEventInfo) {
1008
1008
  console.log('跳转修改会员信息页', logEventInfo);
1009
1009
  }
1010
1010
 
1011
1011
  jdJumpToShopMemberPointDetail(logEventInfo) {
1012
1012
  const venderId = global.info.queryInfo.venderId;
1013
1013
  const shopId = global.info.queryInfo.shopId;
1014
1014
  this.jdJumpToWeb(
1015
1015
  `${this.jumpWebUrl.memberScores}?venderId=${venderId}&shopId=${shopId}`,
1016
1016
  logEventInfo,
1017
1017
  );
1018
1018
  }
1019
1019
 
1020
1020
  jdJumpToShopMemberBenefit(logEventInfo) {
1021
1021
  const venderId = global.info.queryInfo.venderId;
1022
1022
  const shopId = global.info.queryInfo.shopId;
1023
1023
  this.jdJumpToWeb(
1024
1024
  `${this.jumpWebUrl.memberBenefit}?venderId=${venderId}&shopId=${shopId}`,
1025
1025
  logEventInfo,
1026
1026
  );
1027
1027
  }
1028
1028
 
1029
1029
  jdJumpToShopMemberRule(logEventInfo) {
1030
1030
  const venderId = global.info.queryInfo.venderId;
1031
1031
  const shopId = global.info.queryInfo.shopId;
1032
1032
  console.log('会员规则页h5 global.info', global.info);
1033
1033
  this.jdJumpToWeb(
1034
1034
  `${this.jumpWebUrl.shopMemberRule}?venderId=${venderId}&shopId=${shopId}&sign=member`,
1035
1035
  logEventInfo,
1036
1036
  );
1037
1037
  }
1038
1038
 
1039
1039
  jdJumpToShopMemberCloseAccount(venderType, logEventInfo) {
1040
1040
  const venderId = global.info.queryInfo.venderId;
1041
1041
  const shopId = global.info.queryInfo.shopId;
1042
1042
  console.log('注销会员页h5 global.info', global.info);
1043
1043
  this.jdJumpToWeb(
1044
1044
  `${this.jumpWebUrl.shopMemberCloseAccount}?venderId=${venderId}&shopId=${shopId}&venderType=${venderType}`,
1045
1045
  logEventInfo,
1046
1046
  );
1047
1047
  }
1048
1048
 
1049
1049
  jdJumpToShopMemberPointExchange(venderType, levelZeroMenuUrl, logEventInfo) {
1050
1050
  const venderId = global.info.queryInfo.venderId;
1051
1051
  const shopId = global.info.queryInfo.shopId;
1052
1052
  const channel = JUMP_MEMBER_CHANNEL.H5;
1053
1053
  this.jdJumpToWeb(
1054
1054
  `${this.jumpWebUrl.shopMemberPointExchange}?venderId=${venderId}&shopId=${shopId}&venderType=${venderType}&channel=${channel}&levelZeroMenuUrl=${levelZeroMenuUrl}`,
1055
1055
  logEventInfo,
1056
1056
  );
1057
1057
  }
1058
1058
 
1059
1059
  jdJumpToShopMemberBonusPurchase(customerLevel, logEventInfo) {
1060
1060
  const venderId = global.info.queryInfo.venderId;
1061
1061
  const shopId = global.info.queryInfo.shopId;
1062
1062
  this.jdJumpToWeb(
1063
1063
  `${this.jumpWebUrl.shopMemberBonusPurchase}?venderId=${venderId}&shopId=${shopId}&customerLevel=${customerLevel}`,
1064
1064
  logEventInfo,
1065
1065
  );
1066
1066
  }
1067
1067
 
1068
1068
  jdJumpToShopMemberGood(customerLevel, logEventInfo) {
1069
1069
  const venderId = global.info.queryInfo.venderId;
1070
1070
  const shopId = global.info.queryInfo.shopId;
1071
1071
  this.jdJumpToWeb(
1072
1072
  `${this.jumpWebUrl.shopMemberGood}?venderId=${venderId}&shopId=${shopId}&customerLevel=${customerLevel}`,
1073
1073
  logEventInfo,
1074
1074
  );
1075
1075
  }
1076
1076
 
1077
1077
  jdJumpToBeanDetail(logEventInfo) {
1078
1078
  console.log('this.jumpWebUrl.beanDetail', this.jumpWebUrl.beanDetail);
1079
1079
  this.jdJumpToWeb(`${this.jumpWebUrl.beanDetail}?source=dianpuhuiyuan`, logEventInfo);
1080
1080
  }
1081
1081
 
1082
1082
  jdJumpToMyRedEnvelope(logEventInfo) {
1083
1083
  this.jdJumpToWeb(this.jumpWebUrl.myRedPacketList, logEventInfo);
1084
1084
  }
1085
1085
 
1086
1086
  jdJumpToMyCoupon(logEventInfo) {
1087
1087
  this.jdJumpToWeb(this.jumpWebUrl.myCouponList, logEventInfo);
1088
1088
  }
1089
1089
 
1090
1090
  jdJumpToNewH5MemberCard(logEventInfo?) {
1091
1091
  const venderId = global.info.queryInfo.venderId;
1092
1092
  const shopId = global.info.queryInfo.shopId;
1093
1093
  this.jdJumpToWeb(
1094
1094
  `${this.jumpWebUrl.shopH5MemberCardM}?venderId=${venderId}&shopId=${shopId}`,
1095
1095
  logEventInfo,
1096
1096
  );
1097
1097
  }
1098
1098
 
1099
1099
 
1100
1100
  jdJumpToTabAllProduct(shopId, venderId, logEventInfo = {}) {
1101
1101
  console.log('base.ts - jdJumpToTabAllProduct');
1102
1102
  if (typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId;
1103
1103
  if (typeof venderId === 'undefined') venderId = global.info.queryInfo.venderId;
1104
1104
  this.jdJumpToWeb(
1105
1105
  `${this.jumpWebUrl.pages}?shopId=${shopId}&venderId=${venderId}&tabActive=home-product`,
1106
1106
  logEventInfo,
1107
1107
  );
1108
1108
  }
1109
1109
 
1110
1110
  jdJumpToTabAllProductInner(shopId, venderId, logEventInfo = {}) {
1111
1111
  if (typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId;
1112
1112
  if (typeof venderId === 'undefined') venderId = global.info.queryInfo.venderId;
1113
1113
  this.jdJumpToTabAllProduct(shopId, venderId, logEventInfo);
1114
1114
  }
1115
1115
 
1116
1116
  jdJumpToTopTabBase(type, shopInfo = {}) {
1117
1117
  const getInfo = Object.assign(
1118
1118
  {},
1119
1119
  {
1120
1120
  shopId: global.info.queryInfo.shopId,
1121
1121
  venderId: global.info.queryInfo.venderId,
1122
1122
  },
1123
1123
  shopInfo,
1124
1124
  );
1125
1125
  this.jdJumpToWeb(
1126
1126
  `${this.jumpWebUrl.shopHome}?${objectToUrlEncode(
1127
1127
  this.getShopIdOrVenderIdParams(getInfo),
1128
1128
  )}&tabActive=${type}`,
1129
1129
  getInfo,
1130
1130
  );
1131
1131
  }
1132
1132
 
1133
1133
  jdJumpToTabNew(shopInfo = {}) {
1134
1134
  console.log('上新tab');
1135
1135
  this.jdJumpToTopTabBase(
1136
1136
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_NEW_PRODUCT],
1137
1137
  shopInfo,
1138
1138
  );
1139
1139
  }
1140
1140
 
1141
1141
  jdJumpToTabNewInner(shopInfo = {}) {
1142
1142
  this.jdJumpToTabNew(shopInfo);
1143
1143
  }
1144
1144
 
1145
1145
  jdJumpToTabRank(shopInfo = {}) {
1146
1146
  console.log('榜单tab');
1147
1147
  this.jdJumpToTopTabBase(SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_RANK], shopInfo);
1148
1148
  }
1149
1149
  jdJumpToTabRankInner(shopInfo = {}) {
1150
1150
  this.jdJumpToTabRank(shopInfo);
1151
1151
  }
1152
1152
  jdJumpToTabBuyerShow(shopInfo = {}) {
1153
1153
  console.log('买家秀tab');
1154
1154
  this.jdJumpToTopTabBase(
1155
1155
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_BUYER_SHOW],
1156
1156
  shopInfo,
1157
1157
  );
1158
1158
  }
1159
1159
  jdJumpToTabBuyerShowInner(shopInfo = {}) {
1160
1160
  this.jdJumpToTabBuyerShow(shopInfo);
1161
1161
  }
1162
1162
  jdJumpToTabActivity(shopInfo = {}) {
1163
1163
  console.log('活动tab');
1164
1164
  this.jdJumpToTopTabBase(
1165
1165
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_ACTIVITY],
1166
1166
  shopInfo,
1167
1167
  );
1168
1168
  }
1169
1169
  jdJumpToTabActivityInner(shopInfo = {}) {
1170
1170
  this.jdJumpToTabActivity(shopInfo);
1171
1171
  }
1172
1172
  jdJumpToTabSecKill(shopInfo = {}) {
1173
1173
  console.log('秒杀tab');
1174
1174
  this.jdJumpToTopTabBase(
1175
1175
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_SECKILL],
1176
1176
  shopInfo,
1177
1177
  );
1178
1178
  }
1179
1179
  jdJumpToTabSecKillInner(shopInfo = {}) {
1180
1180
  this.jdJumpToTabSecKill(shopInfo);
1181
1181
  }
1182
1182
 
1183
1183
  jdJumpToBottomTabBase(type, shopInfo = {}) {
1184
1184
  this.jdJumpToTopTabBase(type, shopInfo);
1185
1185
  }
1186
1186
  jdJumpToBottomTabProduct(shopInfo = {}) {
1187
1187
  this.jdJumpToBottomTabBase(SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.PRODUCT], shopInfo);
1188
1188
  }
1189
1189
  jdJumpToBottomTabCategory(shopInfo = {}) {
1190
1190
  this.jdJumpToBottomTabBase(SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.CLASSIFY], shopInfo);
1191
1191
  }
1192
1192
  jdJumpToBottomTabFind(shopInfo = {}) {
1193
1193
  console.log('发现tab');
1194
1194
  }
1195
1195
  jdJumpToBottomTabBrandMember(shopInfo = {}) {
1196
1196
  const getInfo = Object.assign(
1197
1197
  {},
1198
1198
  {
1199
1199
  shopId: global.info.queryInfo.shopId,
1200
1200
  venderId: global.info.queryInfo.venderId,
1201
1201
  },
1202
1202
  shopInfo,
1203
1203
  );
1204
1204
  this.jdJumpToWeb(
1205
1205
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(this.getShopIdOrVenderIdParams(getInfo))}`,
1206
1206
  getInfo,
1207
1207
  );
1208
1208
  }
1209
1209
  jdJumpToBottomTabBrandMemberInner(shopInfo = {}) {
1210
1210
  this.jdJumpToBottomTabBrandMember(shopInfo);
1211
1211
  }
1212
1212
 
1213
1213
  jdJumpToMyMessageBox() {}
1214
1214
 
1215
1215
  jdJumpToAppHome(logEventInfo) {
1216
1216
  this.jdJumpToWeb(`${this.jumpWebUrl.mobileHome}?originReferer=shopx`, logEventInfo);
1217
1217
  }
1218
1218
 
1219
1219
  jdJumpToShopSearch(queryParams) {
1220
1220
  const getInfo = Object.assign(
1221
1221
  {},
1222
1222
  {
1223
1223
  shopId: global.info.queryInfo.shopId,
1224
1224
  venderId: global.info.queryInfo.venderId,
1225
1225
  },
1226
1226
  queryParams,
1227
1227
  );
1228
1228
  const {
1229
1229
  shopId,
1230
1230
  categoryId,
1231
1231
  keyword,
1232
1232
  pageId,
1233
1233
  description,
1234
1234
  shopName,
1235
1235
  keyWord,
1236
1236
  seller_actId,
1237
1237
  seller_actType,
1238
1238
  } = getInfo;
1239
1239
  const cateId = categoryId
1240
1240
  ? `&cateId=${typeof categoryId === 'string' ? categoryId?.trim() : categoryId}`
1241
1241
  : '';
1242
1242
  const addKeyWord = keyword || keyWord ? `&keyword=${keyword || keyWord}` : '';
1243
1243
  const addPageId = pageId ? `&pageId=${pageId}` : '';
1244
1244
  const searchDes = description ? `&description=${description}` : '';
1245
1245
  const shopNameDes = shopName ? `&shopName=${shopName}` : '';
1246
1246
  const searchType = categoryId ? 5 : keyword || keyWord ? 4 : 3;
1247
1247
  const activityId = seller_actId ? `&activityId=${seller_actId}` : '';
1248
1248
  const activityType = seller_actType ? `&activityType=${seller_actType}` : '';
1249
1249
  this.jdJumpToWeb(
1250
1250
  `${this.jumpWebUrl.shopSearch}?shopId=${shopId}&searchType=${searchType}${cateId}${addKeyWord}${addPageId}${searchDes}${shopNameDes}${activityId}${activityType}`,
1251
1251
  getInfo,
1252
1252
  );
1253
1253
  }
1254
1254
 
1255
1255
  jdJumpToSearch(_shopId, _suggestWord) {
1256
1256
  console.log('搜索中间页');
1257
1257
  }
1258
1258
 
1259
1259
  jdJumpToOrderList() {
1260
1260
  console.warn('触发基类的jdJumpToOrderList,这不是一个期望的结果,应该调用各端子类来实现');
1261
1261
  }
1262
1262
 
1263
1263
  jdJumpToCouponSearchProductList(couponId, logEventInfo = {}) {
1264
1264
  this.jdJumpToWeb(
1265
1265
  `${this.jumpWebUrl.couponSearch}?couponbatch=${couponId}&sceneval=2`,
1266
1266
  logEventInfo,
1267
1267
  );
1268
1268
  }
1269
1269
 
1270
1270
  jdJumpToWeb(
1271
1271
  spUrl,
1272
1272
  logEventInfo,
1273
1273
  successBack?: functionType | undefined,
1274
1274
  failBack?: functionType | undefined,
1275
1275
  ) {
1276
1276
  this.jdNavigateToNative(
1277
1277
  `${this.jumpMiniPath.h5}?encode_url=` + encodeURIComponent(spUrl),
1278
1278
  {
1279
1279
  ...logEventInfo,
1280
1280
  },
1281
1281
  successBack,
1282
1282
  failBack,
1283
1283
  );
1284
1284
  }
1285
1285
 
1286
1286
  jdJumpToWebInner(url, logEventInfo) {
1287
1287
  this.jdJumpToWeb(url, logEventInfo);
1288
1288
  }
1289
1289
 
1290
1290
  weappRedirectToWeb(url: string, logEventInfo: JumpEventReportInterFace.OptEventLogParams = {}) {
1291
1291
  console.log('weappRedirectToWeb base:', url, logEventInfo);
1292
1292
  }
1293
1293
 
1294
1294
  jdJumpToLive(liveInfo, logEventInfo = {}) {
1295
1295
  if (liveInfo?.liveId) {
1296
1296
  this.jdJumpToWeb(`${this.jumpWebUrl.mLive}/${liveInfo?.liveId}?origin=30`, logEventInfo);
1297
1297
  }
1298
1298
  }
1299
1299
 
1300
1300
  jdJumpToUgcContent(urlObj, logEventInfo = {}) {
1301
1301
  if (typeof urlObj === 'object') {
1302
1302
  this.jdJumpToWeb(
1303
1303
  `${this.jumpWebUrl.shopUseShareOrderUgcContent}?${objectToUrlEncode(urlObj)}`,
1304
1304
  { logEventInfo },
1305
1305
  );
1306
1306
  } else {
1307
1307
  const getShopUgcParams = this.jdOpenAppParams(urlObj);
1308
1308
  console.log('getShopUgcParams=====', getShopUgcParams);
1309
1309
  if (getShopUgcParams) {
1310
1310
  getShopUgcParams['category'] && delete getShopUgcParams['category'];
1311
1311
  getShopUgcParams['des'] && delete getShopUgcParams['des'];
1312
1312
  this.jdJumpToWeb(
1313
1313
  `${this.jumpWebUrl.shopUseShareOrderUgcContent}?${objectToUrlEncode(
1314
1314
  getShopUgcParams as object,
1315
1315
  )}`,
1316
1316
  { logEventInfo },
1317
1317
  );
1318
1318
  }
1319
1319
  }
1320
1320
  }
1321
1321
 
1322
1322
  jdJumpToShopActivity(shopInfo) {
1323
1323
  const getParams = Object.assign(
1324
1324
  {},
1325
1325
  {
1326
1326
  category: 'jump',
1327
1327
  des: 'jshopActivity',
1328
1328
  shopId: global.info.queryInfo.shopId,
1329
1329
  venderId: global.info.queryInfo.venderId,
1330
1330
  },
1331
1331
  shopInfo,
1332
1332
  );
1333
1333
  getParams['projectId'] && (getParams['projectId'] = `${getParams['projectId']}`);
1334
1334
  }
1335
1335
 
1336
1336
  jdJumpToShopMember(shopInfo) {
1337
1337
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo);
1338
1338
  this.jdJumpToWeb(`${this.jumpWebUrl.shopMember}?${objectToUrlEncode(getShopInfo)}`, shopInfo);
1339
1339
  }
1340
1340
 
1341
1341
  jdJumpToMemberTab(shopInfo?) {
1342
1342
  console.log('店内跳转会员tab', shopInfo);
1343
1343
  }
1344
1344
 
1345
1345
  jdJumpToShopMemberCard(shopInfo) {
1346
1346
  const { logEventInfo } = shopInfo;
1347
1347
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo);
1348
1348
  this.jdJumpToWeb(
1349
1349
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(getShopInfo)}`,
1350
1350
  logEventInfo,
1351
1351
  );
1352
1352
  }
1353
1353
 
1354
1354
  jdJumpToTotalPromotion(shopInfo) {
1355
1355
  const { url, logEventInfo } = shopInfo;
1356
1356
  if (this.isOpenJdAppUrl(url)) {
1357
1357
  const getOpenAppParams: any = this.jdOpenAppParams(url);
1358
1358
  if (getOpenAppParams) {
1359
1359
  if (getOpenAppParams?.activityId) {
1360
1360
  this.jdJumpToWeb(
1361
1361
  `${this.jumpWebUrl.totalPromotion}?activity_id=${getOpenAppParams?.activityId}`,
1362
1362
  shopInfo,
1363
1363
  );
1364
1364
  }
1365
1365
  }
1366
1366
  } else {
1367
1367
  this.jdJumpToWeb(url, logEventInfo);
1368
1368
  }
1369
1369
  }
1370
1370
 
1371
1371
  jdJumpToDongDongChatGroup(groupId, source = 'jdmini') {
1372
1372
  console.warn(
1373
1373
  'JdJumpToDongDongChatGroup method is invoked, but should be implemented in subclasses',
1374
1374
  );
1375
1375
  }
1376
1376
 
1377
1377
  jdJumpToDongDongChat(paramInfo) {
1378
1378
  const getInfo = Object.assign(
1379
1379
  {},
1380
1380
  {
1381
1381
  venderId: global.info.queryInfo.venderId,
1382
1382
  },
1383
1383
  paramInfo,
1384
1384
  );
1385
1385
  const { venderId = '1', entry = 'm_shop', ...otherInfo } = getInfo;
1386
1386
  const dongdongUrl = `${this.jumpWebUrl.dongDongChat}?venderId=${venderId}&entry=${entry}&sceneval=2`;
1387
1387
  this.jdJumpToWeb(dongdongUrl, otherInfo);
1388
1388
  }
1389
1389
 
1390
1390
  jdJumpToShopDetail(shopInfo) {
1391
1391
  const getInfo = Object.assign(
1392
1392
  {},
1393
1393
  {
1394
1394
  shopId: global.info.queryInfo.shopId,
1395
1395
  venderId: global.info.queryInfo.venderId,
1396
1396
  },
1397
1397
  shopInfo,
1398
1398
  );
1399
1399
  const getShopInfo = this.getShopIdOrVenderIdParams(getInfo);
1400
1400
  this.jdJumpToWeb(`${this.jumpWebUrl.shopIntroduce}?${objectToUrlEncode(getShopInfo)}`, getInfo);
1401
1401
  }
1402
1402
 
1403
1403
  jdJumpToShopLottery(shopTotalInfo) {
1404
1404
  const getInfo = Object.assign(
1405
1405
  {},
1406
1406
  {
1407
1407
  shopId: global.info.queryInfo.shopId,
1408
1408
  venderId: global.info.queryInfo.venderId,
1409
1409
  },
1410
1410
  shopTotalInfo,
1411
1411
  );
1412
1412
  const getShopInfo = this.getShopIdOrVenderIdParams(getInfo);
1413
1413
  this.jdJumpToWeb(`${this.jumpWebUrl.shopLottery}?${objectToUrlEncode(getShopInfo)}`, getInfo);
1414
1414
  }
1415
1415
 
1416
1416
  jdJumpToSageAuthorHome(shopTotalInfo) {
1417
1417
  const { logEventInfo, ...otherParams } = shopTotalInfo;
1418
1418
  const getInfo = Object.assign(
1419
1419
  {},
1420
1420
  {
1421
1421
  channel: 'shopHomePage',
1422
1422
  selectTab: '0',
1423
1423
  },
1424
1424
  otherParams,
1425
1425
  );
1426
1426
  this.jdJumpToWeb(`${this.jumpWebUrl.sageAuthorHome}?${objectToUrlEncode(getInfo)}`, {
1427
1427
  ...getInfo,
1428
1428
  ...logEventInfo,
1429
1429
  });
1430
1430
  }
1431
1431
 
1432
1432
  jdJumpToMiniProgram({ appId, path, param = {} }: JumpEventReportInterFace.LinkMiniParams) {
1433
1433
  const pageName = param['pageType'] || 'home';
1434
1434
  path = `pages/${pageName}/index`;
1435
1435
  if (appId === global.info.pageInfo?.appId) {
1436
1436
  Taro.navigateTo({
1437
1437
  url: `/${path}?${objectToUrlEncode(param)}`,
1438
1438
  }).catch((err) => {
1439
1439
  console.warn('跳转小程序页面错误:', err);
1440
1440
  });
1441
1441
  } else {
1442
1442
  console.log('一个小程序跳转到另一个小程序暂无此业务');
1443
1443
  }
1444
1444
  }
1445
1445
 
1446
1446
  jdJumpToMyCart(){
1447
1447
  console.log("暂未实现")
1448
1448
  }
1449
1449
 
1450
1450
  jdJumpToAppMiniProgram(
1451
1451
  path: string,
1452
1452
  param = {},
1453
1453
  successBack?: functionType,
1454
1454
  failBack?: functionType,
1455
1455
  ) {
1456
1456
  this.jdNavigateToNative(path, param, successBack, failBack);
1457
1457
  }
1458
1458
 
1459
1459
  jdJumpConfigUrl(detail, logEventInfo = {}) {
1460
1460
  const { configDataType, configDataValue } = detail;
1461
1461
  switch (configDataType) {
1462
1462
  case LinkConfigType.CONFIG_TYPE_SKU_LIST:
1463
1463
  if (logEventInfo?.jsonParam?.logBaseInfo?.mInfo) {
1464
1464
  logEventInfo.jsonParam.logBaseInfo.mInfo.skuid = configDataValue.skuIds;
1465
1465
  }
1466
1466
  this.jdJumpToProduct(configDataValue.skuIds, logEventInfo);
1467
1467
  break;
1468
1468
  case LinkConfigType.CONFIG_TYPE_COUPON_LIST:
1469
1469
  this.jdJumpToWeb(
1470
1470
  `${this.jumpWebUrl.shopCoupon}?couponType=1&shopId=${global.info.queryInfo.shopId}&venderId=${global.info.queryInfo.venderId}`,
1471
1471
  logEventInfo,
1472
1472
  );
1473
1473
  break;
1474
1474
  case LinkConfigType.CONFIG_TYPE_CATEGORY:
1475
1475
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1476
1476
  const getShopSearchParams = this.jdOpenAppParams(configDataValue.clickUrl);
1477
1477
  getShopSearchParams &&
1478
1478
  this.jdJumpToShopSearch(
1479
1479
  Object.assign({}, getShopSearchParams, {
1480
1480
  logEventInfo,
1481
1481
  }),
1482
1482
  );
1483
1483
  } else {
1484
1484
  this.jdJumpToShopSearch(
1485
1485
  configDataValue['cid']
1486
1486
  ? Object.assign(
1487
1487
  {},
1488
1488
  {
1489
1489
  shopId: global.info.queryInfo.shopId,
1490
1490
  categoryId: configDataValue.cid,
1491
1491
  logEventInfo,
1492
1492
  },
1493
1493
  )
1494
1494
  : {
1495
1495
  shopId: global.info.queryInfo.shopId,
1496
1496
  logEventInfo,
1497
1497
  },
1498
1498
  );
1499
1499
  }
1500
1500
  break;
1501
1501
  case LinkConfigType.CONFIG_TYPE_MEMBER:
1502
1502
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1503
1503
  const getShopMemberParams = this.jdOpenAppParams(configDataValue.clickUrl);
1504
1504
  getShopMemberParams &&
1505
1505
  this.jdJumpToShopMember(
1506
1506
  Object.assign({}, getShopMemberParams, {
1507
1507
  logEventInfo,
1508
1508
  }),
1509
1509
  );
1510
1510
  } else {
1511
1511
  this.jdJumpToShopMember({
1512
1512
  shopId: global.info.queryInfo.shopId,
1513
1513
  venderId: configDataValue.shopDetail,
1514
1514
  logEventInfo,
1515
1515
  });
1516
1516
  }
1517
1517
  break;
1518
1518
  case LinkConfigType.CONFIG_TYPE_SHOP_ACTIVITY:
1519
1519
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1520
1520
  const getShopActivityParams = this.jdOpenAppParams(configDataValue.clickUrl);
1521
1521
  getShopActivityParams &&
1522
1522
  this.jdJumpToShopActivity(
1523
1523
  Object.assign({}, getShopActivityParams, {
1524
1524
  logEventInfo,
1525
1525
  }),
1526
1526
  );
1527
1527
  } else if (configDataValue['projectId']) {
1528
1528
  this.jdJumpToShopActivity({
1529
1529
  projectId: configDataValue['projectId'],
1530
1530
  configDataValue,
1531
1531
  logEventInfo,
1532
1532
  });
1533
1533
  }
1534
1534
  break;
1535
1535
  case LinkConfigType.CONFIG_TYPE_CUSTOM_LINK:
1536
1536
  case LinkConfigType.CONFIG_TYPE_FINANCE_COUPON: {
1537
1537
  const _url = configDataValue.linkUrl;
1538
1538
  if (
1539
1539
  _url.indexOf('to=') === -1 &&
1540
1540
  _url.indexOf(`${domain.mshop.replace(/https?:/, '')}/?shopId=`) !== -1
1541
1541
  ) {
1542
1542
  const _shopId = _url.match(/\d+/g)[0];
1543
1543
  this.jdJumpToShopHome({
1544
1544
  shopId: `${_shopId}`,
1545
1545
  logEventInfo,
1546
1546
  });
1547
1547
  } else if (this.isOpenJdAppUrl(_url)) {
1548
1548
  const getOpenAppParams = this.jdOpenAppParams(_url);
1549
1549
  console.log('获取解析后的参数结果', getOpenAppParams);
1550
1550
  if (getOpenAppParams) {
1551
1551
  isJdApp
1552
1552
  ? this.jdNavigateToNative(
1553
1553
  Object.assign({}, getOpenAppParams, {
1554
1554
  logEventInfo,
1555
1555
  }),
1556
1556
  )
1557
1557
  : this.jdNavigateToNative(
1558
1558
  '',
1559
1559
  Object.assign({}, getOpenAppParams, {
1560
1560
  logEventInfo,
1561
1561
  }),
1562
1562
  );
1563
1563
  } else {
1564
1564
  this.jdNavigateToNative(
1565
1565
  '',
1566
1566
  Object.assign({}, getOpenAppParams, {
1567
1567
  logEventInfo,
1568
1568
  }),
1569
1569
  );
1570
1570
  }
1571
1571
  } else {
1572
1572
  this.jdJumpToWeb(_url, logEventInfo);
1573
1573
  }
1574
1574
  break;
1575
1575
  }
1576
1576
  case LinkConfigType.CONFIG_TYPE_JSHOP_DETAIL:
1577
1577
  this.jdJumpToShopDetail({
1578
1578
  venderId: global.info.queryInfo.venderId,
1579
1579
  shopId: global.info.queryInfo.shopId,
1580
1580
  logEventInfo,
1581
1581
  });
1582
1582
  break;
1583
1583
  case LinkConfigType.CONFIG_TYPE_SHOP_HOME:
1584
1584
  this.jdJumpToShopHome({
1585
1585
  ...configDataValue,
1586
1586
  logEventInfo,
1587
1587
  });
1588
1588
  break;
1589
1589
  case LinkConfigType.CONFIG_TYPE_ANCHOR_POINT:
1590
1590
  break;
1591
1591
  case LinkConfigType.CONFIG_TYPE_SHOPPING_GUIDE:
1592
1592
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1593
1593
  const getShoppingGuideParams = this.jdOpenAppParams(configDataValue.clickUrl);
1594
1594
  getShoppingGuideParams &&
1595
1595
  this.jdJumpToShopActivity(
1596
1596
  Object.assign({}, getShoppingGuideParams, {
1597
1597
  logEventInfo,
1598
1598
  }),
1599
1599
  );
1600
1600
  }
1601
1601
  break;
1602
1602
  case LinkConfigType.CONFIG_TYPE_MINI_PROGRAM: {
1603
1603
  const linkUrl = decodeURIComponent(configDataValue?.linkUrl || '');
1604
1604
  const search = linkUrl.match(/\?.+/);
1605
1605
  if (search) {
1606
1606
  const miniQueryData: JumpEventReportInterFace.LinkMiniParams =
1607
1607
  parseQueryUrlString(linkUrl);
1608
1608
  try {
1609
1609
  miniQueryData.param = JSON.parse(miniQueryData?.param as string);
1610
1610
  } catch (e) {
1611
1611
  console.warn('解析小程序 param 错误:', miniQueryData.param);
1612
1612
  }
1613
1613
  this.jdJumpToMiniProgram(miniQueryData);
1614
1614
  } else {
1615
1615
  console.warn('小程序地址错误:', linkUrl);
1616
1616
  }
1617
1617
  break;
1618
1618
  }
1619
1619
  case LinkConfigType.CONFIG_TYPE_SHOP_SEARCH: {
1620
1620
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1621
1621
  const getShopSearchParams = this.jdOpenAppParams(configDataValue.clickUrl);
1622
1622
  console.log('base 获取店铺结果落地页链接解析后的参数结果', getShopSearchParams);
1623
1623
  getShopSearchParams &&
1624
1624
  this.jdJumpToShopSearch(
1625
1625
  Object.assign({}, getShopSearchParams, {
1626
1626
  logEventInfo,
1627
1627
  }),
1628
1628
  );
1629
1629
  } else {
1630
1630
  this.jdJumpToWeb(configDataValue.clickUrl, logEventInfo);
1631
1631
  }
1632
1632
  break;
1633
1633
  }
1634
1634
  default:
1635
1635
  }
1636
1636
  }
1637
1637
 
1638
1638
  jdOpenAppParams(openAppUrl): object | boolean {
1639
1639
  let getParams: boolean | object = false;
1640
1640
  if (this.isOpenJdAppUrl(openAppUrl)) {
1641
1641
  try {
1642
1642
  getParams = openAppUrl.replace(/openApp\.jdMobile:\/\/virtual\?params=/i, '');
1643
1643
  getParams = JSON.parse(String(getParams));
1644
1644
  } catch (e) {
1645
1645
  console.log(e);
1646
1646
  }
1647
1647
  }
1648
1648
  return getParams;
1649
1649
  }
1650
1650
  isOpenJdAppUrl(openAppUrl) {
1651
1651
  return /openApp\.jdMobile:\/\/virtual\?params=/i.test(openAppUrl);
1652
1652
  }
1653
1653
 
1654
1654
  creatParamToLogStr(eventParam) {
1655
1655
  return eventParam
1656
1656
  ? Object.keys(eventParam)
1657
1657
  .map((key) => {
1658
1658
  return `${key}_${eventParam[key]}`;
1659
1659
  })
1660
1660
  .join('_')
1661
1661
  : '';
1662
1662
  }
1663
1663
 
1664
1664
  jdNavigateToNative(
1665
1665
  url: string,
1666
1666
  params: {
1667
1667
  logEventInfo?: object;
1668
1668
  } = {},
1669
1669
  successBack?: functionType | undefined,
1670
1670
  failBack?: functionType | undefined,
1671
1671
  ) {
1672
1672
  const { logEventInfo } = params;
1673
1673
  const getEparam = logEventInfo || params;
1674
1674
  console.log('jdNavigateToNative params: ', params);
1675
1675
  console.log('logEventInfo params: ', logEventInfo);
1676
1676
  try {
1677
1677
  this.clickEventLog(getEparam);
1678
1678
  } catch (e) {
1679
1679
  console.log(e);
1680
1680
  }
1681
1681
  setTimeout(() => {
1682
1682
  Taro.navigateTo({
1683
1683
  url,
1684
1684
  })
1685
1685
  .then((res) => {
1686
1686
  typeof successBack === 'function' && successBack(res);
1687
1687
  console.log('navigateToWxapp.success', res);
1688
1688
  })
1689
1689
  .catch((err) => {
1690
1690
  typeof failBack === 'function' && failBack(err);
1691
1691
  console.log('navigateToWxapp.fail', err);
1692
1692
  });
1693
1693
  }, 200);
1694
1694
  }
1695
1695
 
1696
1696
  clickEventLog(opts: JumpEventReportInterFace.OptEventLogParams = {}, clickKey = 'click') {
1697
1697
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts;
1698
1698
  if (eventId && jsonParam) {
1699
1699
  const { etModelInfo, logBaseInfo } = jsonParam;
1700
1700
  let getJsonParam = logBaseInfo || jsonParam;
1701
1701
  if (etModelInfo && logBaseInfo) {
1702
1702
  getJsonParam = logBaseInfo;
1703
1703
  } else {
1704
1704
  if (Array.isArray(jsonParam)) {
1705
1705
  getJsonParam = jsonParam;
1706
1706
  } else {
1707
1707
  getJsonParam = Object.assign(
1708
1708
  {},
1709
1709
  {
1710
1710
  shopid: global.info.queryInfo?.shopId,
1711
1711
  },
1712
1712
  jsonParam,
1713
1713
  );
1714
1714
  }
1715
1715
  }
1716
1716
  const miniClickKey = clickKey === 'addToCart' ? 'addToCart' : 'click';
1717
1717
  const miniLogParams = {
1718
1718
  eid: eventId,
1719
1719
  elevel: eventLevel,
1720
1720
  ext: JSON.stringify(getJsonParam),
1721
1721
  etModel: JSON.stringify(etModelInfo || {}),
1722
1722
  pname: this.logPname,
1723
1723
  pparam: JSON.stringify(this.routerInfo.params),
1724
1724
  target: this.routerInfo.path,
1725
1725
  event: this.nativeEvent,
1726
1726
  pageId: this.logPageId,
1727
1727
  ...otherParams,
1728
1728
  };
1729
1729
  console.log('点击埋点参数对象', miniLogParams, miniClickKey);
1730
1730
  global.miniAppLogInstance && global.miniAppLogInstance[miniClickKey](miniLogParams);
1731
1731
  }
1732
1732
  }
1733
1733
 
1734
1734
  exposureEventLog(opts: JumpEventReportInterFace.OptEventLogParams = {}) {
1735
1735
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts;
1736
1736
  if (eventId && jsonParam) {
1737
1737
  const { etModelInfo, logBaseInfo } = jsonParam;
1738
1738
  let getJsonParam = {};
1739
1739
  if (etModelInfo && logBaseInfo) {
1740
1740
  getJsonParam = logBaseInfo;
1741
1741
  } else {
1742
1742
  if (Array.isArray(jsonParam)) {
1743
1743
  getJsonParam = jsonParam;
1744
1744
  } else {
1745
1745
  getJsonParam = Object.assign(
1746
1746
  {},
1747
1747
  {
1748
1748
  shopid: global.info.queryInfo?.shopId,
1749
1749
  },
1750
1750
  jsonParam,
1751
1751
  );
1752
1752
  }
1753
1753
  }
1754
1754
  const miniLogParams = {
1755
1755
  eid: eventId,
1756
1756
  elevel: eventLevel,
1757
1757
  ext: JSON.stringify(getJsonParam),
1758
1758
  etModel: JSON.stringify(etModelInfo || {}),
1759
1759
  pname: this.logPname,
1760
1760
  pparam: JSON.stringify(this.routerInfo.params),
1761
1761
  target: this.routerInfo.path,
1762
1762
  pageId: this.logPageId,
1763
1763
  ...otherParams,
1764
1764
  };
1765
1765
  global.miniAppLogInstance && global.miniAppLogInstance['exposure'](miniLogParams);
1766
1766
  }
1767
1767
  }
1768
1768
 
1769
1769
  initOpenTriggerExposure(type) {
1770
1770
  if (!this.sectionExposureInfo[type]) {
1771
1771
  Taro.nextTick(() => {
1772
1772
  setTimeout(() => {
1773
1773
  global.info.pageInfo.isExposureState = true;
1774
1774
  taroEventInitExposure();
1775
1775
  this.sectionExposureInfo[`${type}`] = true;
1776
1776
  }, 200);
1777
1777
  });
1778
1778
  }
1779
1779
  }