@conecli/cone-render 0.10.1-shop3.52 → 0.10.1-shop3.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- import Taro from '@tarojs/taro';
2
1
  JUMP_MEMBER_CHANNEL,
3
2
  SECTION_HOME_TAB_NAME_TYPE,
4
3
  SECTION_HOME_TAB_TYPE,
5
4
  SHOP_MENU_ID_NAME,
6
5
  SHOP_MENU_ID_TYPE,
7
6
  routerInfo: {
8
7
  params: {},
9
8
  },
10
9
  nativeEvent: null,
11
10
  logPageParamStr: '',
12
11
  public jingGouMiniState: boolean;
13
12
  public logPageId: string;
14
13
  public logPageParamStr: string;
15
14
  public nativeEvent: any;
16
15
  public routerInfo: JumpEventReportInterFace.RouterInfo;
17
16
  public logPname: LogPnameInfo;
18
17
  public jumpMiniPath: JumpEventReportInterFace.JumpMiniPath;
19
18
  public jumpWebUrl: JumpEventReportInterFace.jumpWebUrl;
20
19
  public sectionExposureInfo: object;
21
20
  public logPageIdInfo: any;
22
21
  public logPnameInfo: any;
23
22
  constructor(opt = {}) {
24
23
  this.logPageId = LogPageIdInfo.APP;
25
24
  this.logPageIdInfo = LogPageIdInfo;
26
25
  this.logPnameInfo = LogPnameInfo;
27
26
  this.jingGouMiniState = false;
28
27
  this.jumpMiniPath = JumpMiniPath;
29
28
  this.jumpWebUrl = JumpWebUrl;
30
29
  this.sectionExposureInfo = {};
31
30
  this.getConfig(opt);
32
31
  }
33
32
  getConfig(opt) {
34
33
  return Object.assign(this, {}, defaultConfig, opt);
35
34
  }
36
35
 
37
36
  updateInfo(routerInfo, logPname = LogPnameInfo.HOME, pageId = LogPageIdInfo.APP) {
38
37
  this.routerInfo = routerInfo;
39
38
  this.logPname = logPname;
40
39
  this.logPageId = pageId;
41
40
  }
42
41
  reportInfoPv(_pageId, _opt = {}) {}
43
42
 
44
43
  getShopIdOrVenderIdParams(
45
44
  params: JumpEventReportInterFace.ShopIdsInfo = {},
46
45
  ): JumpEventReportInterFace.ShopIdsInfo {
47
46
  const setParams = {};
48
47
  params.shopId && (setParams['shopId'] = `${params.shopId}`);
49
48
  params.venderId && (setParams['venderId'] = `${params.venderId}`);
50
49
  return setParams;
51
50
  }
52
51
 
53
52
  getShopIdsInfo(params = {}): JumpEventReportInterFace.ShopIdsInfo {
54
53
  let setParams = this.getShopIdOrVenderIdParams(params);
55
54
  setParams = {
56
55
  ...params,
57
56
  ...setParams,
58
57
  };
59
58
  return setParams;
60
59
  }
61
60
 
62
61
  jdJumpToShopHome(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
63
62
  console.log('[降级H5] jdJumpToShopHome base');
64
63
  const currentShopInfo = {
65
64
  shopId: global.info.queryInfo.shopId,
66
65
  venderId: global.info.queryInfo.venderId,
67
66
  };
68
67
  const restParams =
69
68
  (shopInfo?.shopId && shopInfo.shopId !== currentShopInfo.shopId) ||
70
69
  (shopInfo?.venderId && shopInfo.venderId !== currentShopInfo.venderId)
71
70
  ? {}
72
71
  : currentShopInfo;
73
72
  const getInfo = Object.assign({}, restParams, shopInfo);
74
73
  this.jdJumpToShopBase(getInfo);
75
74
  }
76
75
 
77
76
  jdJumpToShopHomeInner(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
78
77
  this.jdJumpToShopHome(shopInfo);
79
78
  }
80
79
 
81
80
  jdJumpToShopBase(shopInfo) {
82
81
  console.log('[降级H5] jdJumpToShopBase');
83
82
  this.jdNavigateToNative(
84
83
  `${this.jumpMiniPath.shop}?${objectToUrlEncode(this.getShopIdOrVenderIdParams(shopInfo))}`,
85
84
  {
86
85
  ...shopInfo,
87
86
  },
88
87
  );
89
88
  }
90
89
 
91
90
  jdJumpToShopLight(shopInfo) {
92
91
  this.jdNavigateToNative(
93
92
  `${this.jumpMiniPath.shopLight}?${objectToUrlEncode(
94
93
  this.getShopIdOrVenderIdParams(shopInfo),
95
94
  )}`,
96
95
  {
97
96
  ...shopInfo,
98
97
  },
99
98
  );
100
99
  }
101
100
 
102
101
  jdJumpToProduct(skuIds, logEventInfo) {
103
102
  skuIds = skuIds.toString().trim();
104
103
  const getSkuId = skuIds.indexOf(',') !== -1 ? skuIds.split(',')[0] : skuIds;
105
104
  this.jdNavigateToNative(`${this.jumpMiniPath.detail}?sku=${getSkuId}`, logEventInfo);
106
105
  }
107
106
 
108
107
  jdJumpSkuInfoToProduct(skuInfo: any = {}, logEventInfo) {
109
108
  const getSkuId = skuInfo?.skuId;
110
109
  getSkuId &&
111
110
  this.jdNavigateToNative(`${this.jumpMiniPath.detail}?sku=${getSkuId}`, logEventInfo);
112
111
  }
113
112
 
114
113
  jdJumpToFlashSaleTab(_logEventInfo) {
115
114
  console.log('跳转闪购', _logEventInfo);
116
115
  }
117
116
 
118
117
 
119
118
  jdJumpToShopMemberInfo(logEventInfo) {
120
119
  console.log('跳转修改会员信息页', logEventInfo);
121
120
  }
122
121
 
123
122
  jdJumpToShopMemberPointDetail(logEventInfo) {
124
123
  const venderId = global.info.queryInfo.venderId;
125
124
  const shopId = global.info.queryInfo.shopId;
126
125
  this.jdJumpToWeb(
127
126
  `${this.jumpWebUrl.memberScores}?venderId=${venderId}&shopId=${shopId}`,
128
127
  logEventInfo,
129
128
  );
130
129
  }
131
130
 
132
131
  jdJumpToShopMemberBenefit(logEventInfo) {
133
132
  const venderId = global.info.queryInfo.venderId;
134
133
  const shopId = global.info.queryInfo.shopId;
135
134
  this.jdJumpToWeb(
136
135
  `${this.jumpWebUrl.memberBenefit}?venderId=${venderId}&shopId=${shopId}`,
137
136
  logEventInfo,
138
137
  );
139
138
  }
140
139
 
141
140
  jdJumpToShopMemberRule(logEventInfo) {
142
141
  const venderId = global.info.queryInfo.venderId;
143
142
  const shopId = global.info.queryInfo.shopId;
144
143
  console.log('会员规则页h5 global.info', global.info);
145
144
  this.jdJumpToWeb(
146
145
  `${this.jumpWebUrl.shopMemberRule}?venderId=${venderId}&shopId=${shopId}&sign=member`,
147
146
  logEventInfo,
148
147
  );
149
148
  }
150
149
 
151
150
  jdJumpToShopMemberCloseAccount(venderType, logEventInfo) {
152
151
  const venderId = global.info.queryInfo.venderId;
153
152
  const shopId = global.info.queryInfo.shopId;
154
153
  console.log('注销会员页h5 global.info', global.info);
155
154
  this.jdJumpToWeb(
156
155
  `${this.jumpWebUrl.shopMemberCloseAccount}?venderId=${venderId}&shopId=${shopId}&venderType=${venderType}`,
157
156
  logEventInfo,
158
157
  );
159
158
  }
160
159
 
161
160
  jdJumpToShopMemberPointExchange(venderType, levelZeroMenuUrl, logEventInfo) {
162
161
  const venderId = global.info.queryInfo.venderId;
163
162
  const shopId = global.info.queryInfo.shopId;
164
163
  const channel = JUMP_MEMBER_CHANNEL.H5;
165
164
  this.jdJumpToWeb(
166
165
  `${this.jumpWebUrl.shopMemberPointExchange}?venderId=${venderId}&shopId=${shopId}&venderType=${venderType}&channel=${channel}&levelZeroMenuUrl=${levelZeroMenuUrl}`,
167
166
  logEventInfo,
168
167
  );
169
168
  }
170
169
 
171
170
  jdJumpToShopMemberBonusPurchase(customerLevel, logEventInfo) {
172
171
  const venderId = global.info.queryInfo.venderId;
173
172
  const shopId = global.info.queryInfo.shopId;
174
173
  this.jdJumpToWeb(
175
174
  `${this.jumpWebUrl.shopMemberBonusPurchase}?venderId=${venderId}&shopId=${shopId}&customerLevel=${customerLevel}`,
176
175
  logEventInfo,
177
176
  );
178
177
  }
179
178
 
180
179
  jdJumpToShopMemberGood(customerLevel, logEventInfo) {
181
180
  const venderId = global.info.queryInfo.venderId;
182
181
  const shopId = global.info.queryInfo.shopId;
183
182
  this.jdJumpToWeb(
184
183
  `${this.jumpWebUrl.shopMemberGood}?venderId=${venderId}&shopId=${shopId}&customerLevel=${customerLevel}`,
185
184
  logEventInfo,
186
185
  );
187
186
  }
188
187
 
189
188
  jdJumpToBeanDetail(logEventInfo) {
190
189
  console.log('this.jumpWebUrl.beanDetail', this.jumpWebUrl.beanDetail);
191
190
  this.jdJumpToWeb(`${this.jumpWebUrl.beanDetail}?source=dianpuhuiyuan`, logEventInfo);
192
191
  }
193
192
 
194
193
  jdJumpToMyRedEnvelope(logEventInfo) {
195
194
  this.jdJumpToWeb(this.jumpWebUrl.myRedPacketList, logEventInfo);
196
195
  }
197
196
 
198
197
  jdJumpToMyCoupon(logEventInfo) {
199
198
  this.jdJumpToWeb(this.jumpWebUrl.myCouponList, logEventInfo);
200
199
  }
201
200
 
202
201
  jdJumpToNewH5MemberCard(logEventInfo?) {
203
202
  const venderId = global.info.queryInfo.venderId;
204
203
  const shopId = global.info.queryInfo.shopId;
205
204
  this.jdJumpToWeb(
206
205
  `${this.jumpWebUrl.shopH5MemberCardM}?venderId=${venderId}&shopId=${shopId}`,
207
206
  logEventInfo,
208
207
  );
209
208
  }
210
209
 
211
210
 
212
211
  jdJumpToTabAllProduct(shopId, venderId, logEventInfo = {}) {
213
212
  console.log('base.ts - jdJumpToTabAllProduct');
214
213
  if (typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId;
215
214
  if (typeof venderId === 'undefined') venderId = global.info.queryInfo.venderId;
216
215
  this.jdJumpToWeb(
217
216
  `${this.jumpWebUrl.pages}?shopId=${shopId}&venderId=${venderId}&tabActive=home-product`,
218
217
  logEventInfo,
219
218
  );
220
219
  }
221
220
 
222
221
  jdJumpToTabAllProductInner(shopId, venderId, logEventInfo = {}) {
223
222
  if (typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId;
224
223
  if (typeof venderId === 'undefined') venderId = global.info.queryInfo.venderId;
225
224
  this.jdJumpToTabAllProduct(shopId, venderId, logEventInfo);
226
225
  }
227
226
 
228
227
  jdJumpToTopTabBase(type, shopInfo = {}) {
229
228
  const getInfo = Object.assign(
230
229
  {},
231
230
  {
232
231
  shopId: global.info.queryInfo.shopId,
233
232
  venderId: global.info.queryInfo.venderId,
234
233
  },
235
234
  shopInfo,
236
235
  );
237
236
  this.jdJumpToWeb(
238
237
  `${this.jumpWebUrl.shopHome}?${objectToUrlEncode(
239
238
  this.getShopIdOrVenderIdParams(getInfo),
240
239
  )}&tabActive=${type}`,
241
240
  getInfo,
242
241
  );
243
242
  }
244
243
 
245
244
  jdJumpToTabNew(shopInfo = {}) {
246
245
  console.log('上新tab');
247
246
  this.jdJumpToTopTabBase(
248
247
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_NEW_PRODUCT],
249
248
  shopInfo,
250
249
  );
251
250
  }
252
251
 
253
252
  jdJumpToTabNewInner(shopInfo = {}) {
254
253
  this.jdJumpToTabNew(shopInfo);
255
254
  }
256
255
 
257
256
  jdJumpToTabRank(shopInfo = {}) {
258
257
  console.log('榜单tab');
259
258
  this.jdJumpToTopTabBase(SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_RANK], shopInfo);
260
259
  }
261
260
  jdJumpToTabRankInner(shopInfo = {}) {
262
261
  this.jdJumpToTabRank(shopInfo);
263
262
  }
264
263
  jdJumpToTabBuyerShow(shopInfo = {}) {
265
264
  console.log('买家秀tab');
266
265
  this.jdJumpToTopTabBase(
267
266
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_BUYER_SHOW],
268
267
  shopInfo,
269
268
  );
270
269
  }
271
270
  jdJumpToTabBuyerShowInner(shopInfo = {}) {
272
271
  this.jdJumpToTabBuyerShow(shopInfo);
273
272
  }
274
273
  jdJumpToTabActivity(shopInfo = {}) {
275
274
  console.log('活动tab');
276
275
  this.jdJumpToTopTabBase(
277
276
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_ACTIVITY],
278
277
  shopInfo,
279
278
  );
280
279
  }
281
280
  jdJumpToTabActivityInner(shopInfo = {}) {
282
281
  this.jdJumpToTabActivity(shopInfo);
283
282
  }
284
283
  jdJumpToTabSecKill(shopInfo = {}) {
285
284
  console.log('秒杀tab');
286
285
  this.jdJumpToTopTabBase(
287
286
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_SECKILL],
288
287
  shopInfo,
289
288
  );
290
289
  }
291
290
  jdJumpToTabSecKillInner(shopInfo = {}) {
292
291
  this.jdJumpToTabSecKill(shopInfo);
293
292
  }
294
293
 
295
294
  jdJumpToBottomTabBase(type, shopInfo = {}) {
296
295
  this.jdJumpToTopTabBase(type, shopInfo);
297
296
  }
298
297
  jdJumpToBottomTabProduct(shopInfo = {}) {
299
298
  this.jdJumpToBottomTabBase(SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.PRODUCT], shopInfo);
300
299
  }
301
300
  jdJumpToBottomTabCategory(shopInfo = {}) {
302
301
  this.jdJumpToBottomTabBase(SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.CLASSIFY], shopInfo);
303
302
  }
304
303
  jdJumpToBottomTabFind(shopInfo = {}) {
305
304
  console.log('发现tab');
306
305
  }
307
306
  jdJumpToBottomTabBrandMember(shopInfo = {}) {
308
307
  const getInfo = Object.assign(
309
308
  {},
310
309
  {
311
310
  shopId: global.info.queryInfo.shopId,
312
311
  venderId: global.info.queryInfo.venderId,
313
312
  },
314
313
  shopInfo,
315
314
  );
316
315
  this.jdJumpToWeb(
317
316
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(this.getShopIdOrVenderIdParams(getInfo))}`,
318
317
  getInfo,
319
318
  );
320
319
  }
321
320
  jdJumpToBottomTabBrandMemberInner(shopInfo = {}) {
322
321
  this.jdJumpToBottomTabBrandMember(shopInfo);
323
322
  }
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
  jdJumpToAppMiniProgram(
557
556
  path: string,
558
557
  param = {},
559
558
  successBack?: functionType,
560
559
  failBack?: functionType,
561
560
  ) {
562
561
  this.jdNavigateToNative(path, param, successBack, failBack);
563
562
  }
564
563
 
565
564
  jdJumpConfigUrl(detail, logEventInfo = {}) {
566
565
  const { configDataType, configDataValue } = detail;
567
566
  switch (configDataType) {
568
567
  case LinkConfigType.CONFIG_TYPE_SKU_LIST:
569
568
  if (logEventInfo?.jsonParam?.logBaseInfo?.mInfo) {
570
569
  logEventInfo.jsonParam.logBaseInfo.mInfo.skuid = configDataValue.skuIds;
571
570
  }
572
571
  this.jdJumpToProduct(configDataValue.skuIds, logEventInfo);
573
572
  break;
574
573
  case LinkConfigType.CONFIG_TYPE_COUPON_LIST:
575
574
  this.jdJumpToWeb(
576
575
  `${this.jumpWebUrl.shopCoupon}?couponType=1&shopId=${global.info.queryInfo.shopId}&venderId=${global.info.queryInfo.venderId}`,
577
576
  logEventInfo,
578
577
  );
579
578
  break;
580
579
  case LinkConfigType.CONFIG_TYPE_CATEGORY:
581
580
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
582
581
  const getShopSearchParams = this.jdOpenAppParams(configDataValue.clickUrl);
583
582
  getShopSearchParams &&
584
583
  this.jdJumpToShopSearch(
585
584
  Object.assign({}, getShopSearchParams, {
586
585
  logEventInfo,
587
586
  }),
588
587
  );
589
588
  } else {
590
589
  this.jdJumpToShopSearch(
591
590
  configDataValue['cid']
592
591
  ? Object.assign(
593
592
  {},
594
593
  {
595
594
  shopId: global.info.queryInfo.shopId,
596
595
  categoryId: configDataValue.cid,
597
596
  logEventInfo,
598
597
  },
599
598
  )
600
599
  : {
601
600
  shopId: global.info.queryInfo.shopId,
602
601
  logEventInfo,
603
602
  },
604
603
  );
605
604
  }
606
605
  break;
607
606
  case LinkConfigType.CONFIG_TYPE_MEMBER:
608
607
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
609
608
  const getShopMemberParams = this.jdOpenAppParams(configDataValue.clickUrl);
610
609
  getShopMemberParams &&
611
610
  this.jdJumpToShopMember(
612
611
  Object.assign({}, getShopMemberParams, {
613
612
  logEventInfo,
614
613
  }),
615
614
  );
616
615
  } else {
617
616
  this.jdJumpToShopMember({
618
617
  shopId: global.info.queryInfo.shopId,
619
618
  venderId: configDataValue.shopDetail,
620
619
  logEventInfo,
621
620
  });
622
621
  }
623
622
  break;
624
623
  case LinkConfigType.CONFIG_TYPE_SHOP_ACTIVITY:
625
624
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
626
625
  const getShopActivityParams = this.jdOpenAppParams(configDataValue.clickUrl);
627
626
  getShopActivityParams &&
628
627
  this.jdJumpToShopActivity(
629
628
  Object.assign({}, getShopActivityParams, {
630
629
  logEventInfo,
631
630
  }),
632
631
  );
633
632
  } else if (configDataValue['projectId']) {
634
633
  this.jdJumpToShopActivity({
635
634
  projectId: configDataValue['projectId'],
636
635
  configDataValue,
637
636
  logEventInfo,
638
637
  });
639
638
  }
640
639
  break;
641
640
  case LinkConfigType.CONFIG_TYPE_CUSTOM_LINK:
642
641
  case LinkConfigType.CONFIG_TYPE_FINANCE_COUPON: {
643
642
  const _url = configDataValue.linkUrl;
644
643
  if (
645
644
  _url.indexOf('to=') === -1 &&
646
645
  _url.indexOf(`${domain.mshop.replace(/https?:/, '')}/?shopId=`) !== -1
647
646
  ) {
648
647
  const _shopId = _url.match(/\d+/g)[0];
649
648
  this.jdJumpToShopHome({
650
649
  shopId: `${_shopId}`,
651
650
  logEventInfo,
652
651
  });
653
652
  } else if (this.isOpenJdAppUrl(_url)) {
654
653
  const getOpenAppParams = this.jdOpenAppParams(_url);
655
654
  console.log('获取解析后的参数结果', getOpenAppParams);
656
655
  if (getOpenAppParams) {
657
656
  isJdApp
658
657
  ? this.jdNavigateToNative(
659
658
  Object.assign({}, getOpenAppParams, {
660
659
  logEventInfo,
661
660
  }),
662
661
  )
663
662
  : this.jdNavigateToNative(
664
663
  '',
665
664
  Object.assign({}, getOpenAppParams, {
666
665
  logEventInfo,
667
666
  }),
668
667
  );
669
668
  } else {
670
669
  this.jdNavigateToNative(
671
670
  '',
672
671
  Object.assign({}, getOpenAppParams, {
673
672
  logEventInfo,
674
673
  }),
675
674
  );
676
675
  }
677
676
  } else {
678
677
  this.jdJumpToWeb(_url, logEventInfo);
679
678
  }
680
679
  break;
681
680
  }
682
681
  case LinkConfigType.CONFIG_TYPE_JSHOP_DETAIL:
683
682
  this.jdJumpToShopDetail({
684
683
  venderId: global.info.queryInfo.venderId,
685
684
  shopId: global.info.queryInfo.shopId,
686
685
  logEventInfo,
687
686
  });
688
687
  break;
689
688
  case LinkConfigType.CONFIG_TYPE_SHOP_HOME:
690
689
  this.jdJumpToShopHome({
691
690
  ...configDataValue,
692
691
  logEventInfo,
693
692
  });
694
693
  break;
695
694
  case LinkConfigType.CONFIG_TYPE_ANCHOR_POINT:
696
695
  break;
697
696
  case LinkConfigType.CONFIG_TYPE_SHOPPING_GUIDE:
698
697
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
699
698
  const getShoppingGuideParams = this.jdOpenAppParams(configDataValue.clickUrl);
700
699
  getShoppingGuideParams &&
701
700
  this.jdJumpToShopActivity(
702
701
  Object.assign({}, getShoppingGuideParams, {
703
702
  logEventInfo,
704
703
  }),
705
704
  );
706
705
  }
707
706
  break;
708
707
  case LinkConfigType.CONFIG_TYPE_MINI_PROGRAM: {
709
708
  const linkUrl = decodeURIComponent(configDataValue?.linkUrl || '');
710
709
  const search = linkUrl.match(/\?.+/);
711
710
  if (search) {
712
711
  const miniQueryData: JumpEventReportInterFace.LinkMiniParams =
713
712
  parseQueryUrlString(linkUrl);
714
713
  try {
715
714
  miniQueryData.param = JSON.parse(<string>miniQueryData?.param);
716
715
  } catch (e) {
717
716
  console.warn('解析小程序 param 错误:', miniQueryData.param);
718
717
  }
719
718
  this.jdJumpToMiniProgram(miniQueryData);
720
719
  } else {
721
720
  console.warn('小程序地址错误:', linkUrl);
722
721
  }
723
722
  break;
724
723
  }
725
724
  case LinkConfigType.CONFIG_TYPE_SHOP_SEARCH: {
726
725
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
727
726
  const getShopSearchParams = this.jdOpenAppParams(configDataValue.clickUrl);
728
727
  console.log('base 获取店铺结果落地页链接解析后的参数结果', getShopSearchParams);
729
728
  getShopSearchParams &&
730
729
  this.jdJumpToShopSearch(
731
730
  Object.assign({}, getShopSearchParams, {
732
731
  logEventInfo,
733
732
  }),
734
733
  );
735
734
  } else {
736
735
  this.jdJumpToWeb(configDataValue.clickUrl, logEventInfo);
737
736
  }
738
737
  break;
739
738
  }
740
739
  default:
741
740
  }
742
741
  }
743
742
 
744
743
  jdOpenAppParams(openAppUrl): object | boolean {
745
744
  let getParams: boolean | object = false;
746
745
  if (this.isOpenJdAppUrl(openAppUrl)) {
747
746
  try {
748
747
  getParams = openAppUrl.replace(/openApp\.jdMobile:\/\/virtual\?params=/i, '');
749
748
  getParams = JSON.parse(String(getParams));
750
749
  } catch (e) {
751
750
  console.log(e);
752
751
  }
753
752
  }
754
753
  return getParams;
755
754
  }
756
755
  isOpenJdAppUrl(openAppUrl) {
757
756
  return /openApp\.jdMobile:\/\/virtual\?params=/i.test(openAppUrl);
758
757
  }
759
758
 
760
759
  creatParamToLogStr(eventParam) {
761
760
  return eventParam
762
761
  ? Object.keys(eventParam)
763
762
  .map((key) => {
764
763
  return `${key}_${eventParam[key]}`;
765
764
  })
766
765
  .join('_')
767
766
  : '';
768
767
  }
769
768
 
770
769
  jdNavigateToNative(
771
770
  url: string,
772
771
  params: {
773
772
  logEventInfo?: object;
774
773
  } = {},
775
774
  successBack?: functionType | undefined,
776
775
  failBack?: functionType | undefined,
777
776
  ) {
778
777
  const { logEventInfo } = params;
779
778
  const getEparam = logEventInfo || params;
780
779
  console.log('jdNavigateToNative params: ', params);
781
780
  console.log('logEventInfo params: ', logEventInfo);
782
781
  try {
783
782
  this.clickEventLog(getEparam);
784
783
  } catch (e) {
785
784
  console.log(e);
786
785
  }
787
786
  setTimeout(() => {
788
787
  Taro.navigateTo({
789
788
  url,
790
789
  })
791
790
  .then((res) => {
792
791
  typeof successBack === 'function' && successBack(res);
793
792
  console.log('navigateToWxapp.success', res);
794
793
  })
795
794
  .catch((err) => {
796
795
  typeof failBack === 'function' && failBack(err);
797
796
  console.log('navigateToWxapp.fail', err);
798
797
  });
799
798
  }, 200);
800
799
  }
801
800
 
802
801
  clickEventLog(opts: JumpEventReportInterFace.OptEventLogParams = {}, clickKey = 'click') {
803
802
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts;
804
803
  if (eventId && jsonParam) {
805
804
  const { etModelInfo, logBaseInfo } = jsonParam;
806
805
  let getJsonParam = logBaseInfo || jsonParam;
807
806
  if (etModelInfo && logBaseInfo) {
808
807
  getJsonParam = logBaseInfo;
809
808
  } else {
810
809
  if (Array.isArray(jsonParam)) {
811
810
  getJsonParam = jsonParam;
812
811
  } else {
813
812
  getJsonParam = Object.assign(
814
813
  {},
815
814
  {
816
815
  shopid: global.info.queryInfo?.shopId,
817
816
  },
818
817
  jsonParam,
819
818
  );
820
819
  }
821
820
  }
822
821
  const miniClickKey = clickKey === 'addToCart' ? 'addToCart' : 'click';
823
822
  const miniLogParams = {
824
823
  eid: eventId,
825
824
  elevel: eventLevel,
826
825
  ext: JSON.stringify(getJsonParam),
827
826
  etModel: JSON.stringify(etModelInfo || {}),
828
827
  pname: this.logPname,
829
828
  pparam: JSON.stringify(this.routerInfo.params),
830
829
  target: this.routerInfo.path,
831
830
  event: this.nativeEvent,
832
831
  pageId: this.logPageId,
833
832
  ...otherParams,
834
833
  };
835
834
  console.log('点击埋点参数对象', miniLogParams, miniClickKey);
836
835
  global.miniAppLogInstance && global.miniAppLogInstance[miniClickKey](miniLogParams);
837
836
  }
838
837
  }
839
838
 
840
839
  exposureEventLog(opts: JumpEventReportInterFace.OptEventLogParams = {}) {
841
840
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts;
842
841
  if (eventId && jsonParam) {
843
842
  const { etModelInfo, logBaseInfo } = jsonParam;
844
843
  let getJsonParam = {};
845
844
  if (etModelInfo && logBaseInfo) {
846
845
  getJsonParam = logBaseInfo;
847
846
  } else {
848
847
  if (Array.isArray(jsonParam)) {
849
848
  getJsonParam = jsonParam;
850
849
  } else {
851
850
  getJsonParam = Object.assign(
852
851
  {},
853
852
  {
854
853
  shopid: global.info.queryInfo?.shopId,
855
854
  },
856
855
  jsonParam,
857
856
  );
858
857
  }
859
858
  }
860
859
  const miniLogParams = {
861
860
  eid: eventId,
862
861
  elevel: eventLevel,
863
862
  ext: JSON.stringify(getJsonParam),
864
863
  etModel: JSON.stringify(etModelInfo || {}),
865
864
  pname: this.logPname,
866
865
  pparam: JSON.stringify(this.routerInfo.params),
867
866
  target: this.routerInfo.path,
868
867
  pageId: this.logPageId,
869
868
  ...otherParams,
870
869
  };
871
870
  global.miniAppLogInstance && global.miniAppLogInstance['exposure'](miniLogParams);
872
871
  }
873
872
  }
874
873
 
875
874
  initOpenTriggerExposure(type) {
876
875
  if (!this.sectionExposureInfo[type]) {
877
876
  Taro.nextTick(() => {
878
877
  setTimeout(() => {
879
878
  global.info.pageInfo.isExposureState = true;
880
879
  taroEventInitExposure();
881
880
  this.sectionExposureInfo[`${type}`] = true;
882
881
  }, 200);
883
882
  });
884
883
  }
885
884
  }
885
+ import Taro from '@tarojs/taro';
886
886
  JUMP_MEMBER_CHANNEL,
887
887
  SECTION_HOME_TAB_NAME_TYPE,
888
888
  SECTION_HOME_TAB_TYPE,
889
889
  SHOP_MENU_ID_NAME,
890
890
  SHOP_MENU_ID_TYPE,
891
891
  routerInfo: {
892
892
  params: {},
893
893
  },
894
894
  nativeEvent: null,
895
895
  logPageParamStr: '',
896
896
  public jingGouMiniState: boolean;
897
897
  public logPageId: string;
898
898
  public logPageParamStr: string;
899
899
  public nativeEvent: any;
900
900
  public routerInfo: JumpEventReportInterFace.RouterInfo;
901
901
  public logPname: LogPnameInfo;
902
902
  public jumpMiniPath: JumpEventReportInterFace.JumpMiniPath;
903
903
  public jumpWebUrl: JumpEventReportInterFace.jumpWebUrl;
904
904
  public sectionExposureInfo: object;
905
905
  public logPageIdInfo: any;
906
906
  public logPnameInfo: any;
907
907
  constructor(opt = {}) {
908
908
  this.logPageId = LogPageIdInfo.APP;
909
909
  this.logPageIdInfo = LogPageIdInfo;
910
910
  this.logPnameInfo = LogPnameInfo;
911
911
  this.jingGouMiniState = false;
912
912
  this.jumpMiniPath = JumpMiniPath;
913
913
  this.jumpWebUrl = JumpWebUrl;
914
914
  this.sectionExposureInfo = {};
915
915
  this.getConfig(opt);
916
916
  }
917
917
  getConfig(opt) {
918
918
  return Object.assign(this, {}, defaultConfig, opt);
919
919
  }
920
920
 
921
921
  updateInfo(routerInfo, logPname = LogPnameInfo.HOME, pageId = LogPageIdInfo.APP) {
922
922
  this.routerInfo = routerInfo;
923
923
  this.logPname = logPname;
924
924
  this.logPageId = pageId;
925
925
  }
926
926
  reportInfoPv(_pageId, _opt = {}) {}
927
927
 
928
928
  getShopIdOrVenderIdParams(
929
929
  params: JumpEventReportInterFace.ShopIdsInfo = {},
930
930
  ): JumpEventReportInterFace.ShopIdsInfo {
931
931
  const setParams = {};
932
932
  params.shopId && (setParams['shopId'] = `${params.shopId}`);
933
933
  params.venderId && (setParams['venderId'] = `${params.venderId}`);
934
934
  return setParams;
935
935
  }
936
936
 
937
937
  getShopIdsInfo(params = {}): JumpEventReportInterFace.ShopIdsInfo {
938
938
  let setParams = this.getShopIdOrVenderIdParams(params);
939
939
  setParams = {
940
940
  ...params,
941
941
  ...setParams,
942
942
  };
943
943
  return setParams;
944
944
  }
945
945
 
946
946
  jdJumpToShopHome(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
947
947
  console.log('[降级H5] jdJumpToShopHome base');
948
948
  const currentShopInfo = {
949
949
  shopId: global.info.queryInfo.shopId,
950
950
  venderId: global.info.queryInfo.venderId,
951
951
  };
952
952
  const restParams =
953
953
  (shopInfo?.shopId && shopInfo.shopId !== currentShopInfo.shopId) ||
954
954
  (shopInfo?.venderId && shopInfo.venderId !== currentShopInfo.venderId)
955
955
  ? {}
956
956
  : currentShopInfo;
957
957
  const getInfo = Object.assign({}, restParams, shopInfo);
958
958
  this.jdJumpToShopBase(getInfo);
959
959
  }
960
960
 
961
961
  jdJumpToShopHomeInner(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
962
962
  this.jdJumpToShopHome(shopInfo);
963
963
  }
964
964
 
965
965
  jdJumpToShopBase(shopInfo) {
966
966
  console.log('[降级H5] jdJumpToShopBase');
967
967
  this.jdNavigateToNative(
968
968
  `${this.jumpMiniPath.shop}?${objectToUrlEncode(this.getShopIdOrVenderIdParams(shopInfo))}`,
969
969
  {
970
970
  ...shopInfo,
971
971
  },
972
972
  );
973
973
  }
974
974
 
975
975
  jdJumpToShopLight(shopInfo) {
976
976
  this.jdNavigateToNative(
977
977
  `${this.jumpMiniPath.shopLight}?${objectToUrlEncode(
978
978
  this.getShopIdOrVenderIdParams(shopInfo),
979
979
  )}`,
980
980
  {
981
981
  ...shopInfo,
982
982
  },
983
983
  );
984
984
  }
985
985
 
986
986
  jdJumpToProduct(skuIds, logEventInfo) {
987
987
  skuIds = skuIds.toString().trim();
988
988
  const getSkuId = skuIds.indexOf(',') !== -1 ? skuIds.split(',')[0] : skuIds;
989
989
  this.jdNavigateToNative(`${this.jumpMiniPath.detail}?sku=${getSkuId}`, logEventInfo);
990
990
  }
991
991
 
992
992
  jdJumpSkuInfoToProduct(skuInfo: any = {}, logEventInfo) {
993
993
  const getSkuId = skuInfo?.skuId;
994
994
  getSkuId &&
995
995
  this.jdNavigateToNative(`${this.jumpMiniPath.detail}?sku=${getSkuId}`, logEventInfo);
996
996
  }
997
997
 
998
998
  jdJumpToCartPage(logEventInfo) {
999
999
  console.log('跳转到购物车页面', 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
  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
  jdJumpToAppMiniProgram(
1445
1445
  path: string,
1446
1446
  param = {},
1447
1447
  successBack?: functionType,
1448
1448
  failBack?: functionType,
1449
1449
  ) {
1450
1450
  this.jdNavigateToNative(path, param, successBack, failBack);
1451
1451
  }
1452
1452
 
1453
1453
  jdJumpConfigUrl(detail, logEventInfo = {}) {
1454
1454
  const { configDataType, configDataValue } = detail;
1455
1455
  switch (configDataType) {
1456
1456
  case LinkConfigType.CONFIG_TYPE_SKU_LIST:
1457
1457
  if (logEventInfo?.jsonParam?.logBaseInfo?.mInfo) {
1458
1458
  logEventInfo.jsonParam.logBaseInfo.mInfo.skuid = configDataValue.skuIds;
1459
1459
  }
1460
1460
  this.jdJumpToProduct(configDataValue.skuIds, logEventInfo);
1461
1461
  break;
1462
1462
  case LinkConfigType.CONFIG_TYPE_COUPON_LIST:
1463
1463
  this.jdJumpToWeb(
1464
1464
  `${this.jumpWebUrl.shopCoupon}?couponType=1&shopId=${global.info.queryInfo.shopId}&venderId=${global.info.queryInfo.venderId}`,
1465
1465
  logEventInfo,
1466
1466
  );
1467
1467
  break;
1468
1468
  case LinkConfigType.CONFIG_TYPE_CATEGORY:
1469
1469
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1470
1470
  const getShopSearchParams = this.jdOpenAppParams(configDataValue.clickUrl);
1471
1471
  getShopSearchParams &&
1472
1472
  this.jdJumpToShopSearch(
1473
1473
  Object.assign({}, getShopSearchParams, {
1474
1474
  logEventInfo,
1475
1475
  }),
1476
1476
  );
1477
1477
  } else {
1478
1478
  this.jdJumpToShopSearch(
1479
1479
  configDataValue['cid']
1480
1480
  ? Object.assign(
1481
1481
  {},
1482
1482
  {
1483
1483
  shopId: global.info.queryInfo.shopId,
1484
1484
  categoryId: configDataValue.cid,
1485
1485
  logEventInfo,
1486
1486
  },
1487
1487
  )
1488
1488
  : {
1489
1489
  shopId: global.info.queryInfo.shopId,
1490
1490
  logEventInfo,
1491
1491
  },
1492
1492
  );
1493
1493
  }
1494
1494
  break;
1495
1495
  case LinkConfigType.CONFIG_TYPE_MEMBER:
1496
1496
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1497
1497
  const getShopMemberParams = this.jdOpenAppParams(configDataValue.clickUrl);
1498
1498
  getShopMemberParams &&
1499
1499
  this.jdJumpToShopMember(
1500
1500
  Object.assign({}, getShopMemberParams, {
1501
1501
  logEventInfo,
1502
1502
  }),
1503
1503
  );
1504
1504
  } else {
1505
1505
  this.jdJumpToShopMember({
1506
1506
  shopId: global.info.queryInfo.shopId,
1507
1507
  venderId: configDataValue.shopDetail,
1508
1508
  logEventInfo,
1509
1509
  });
1510
1510
  }
1511
1511
  break;
1512
1512
  case LinkConfigType.CONFIG_TYPE_SHOP_ACTIVITY:
1513
1513
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1514
1514
  const getShopActivityParams = this.jdOpenAppParams(configDataValue.clickUrl);
1515
1515
  getShopActivityParams &&
1516
1516
  this.jdJumpToShopActivity(
1517
1517
  Object.assign({}, getShopActivityParams, {
1518
1518
  logEventInfo,
1519
1519
  }),
1520
1520
  );
1521
1521
  } else if (configDataValue['projectId']) {
1522
1522
  this.jdJumpToShopActivity({
1523
1523
  projectId: configDataValue['projectId'],
1524
1524
  configDataValue,
1525
1525
  logEventInfo,
1526
1526
  });
1527
1527
  }
1528
1528
  break;
1529
1529
  case LinkConfigType.CONFIG_TYPE_CUSTOM_LINK:
1530
1530
  case LinkConfigType.CONFIG_TYPE_FINANCE_COUPON: {
1531
1531
  const _url = configDataValue.linkUrl;
1532
1532
  if (
1533
1533
  _url.indexOf('to=') === -1 &&
1534
1534
  _url.indexOf(`${domain.mshop.replace(/https?:/, '')}/?shopId=`) !== -1
1535
1535
  ) {
1536
1536
  const _shopId = _url.match(/\d+/g)[0];
1537
1537
  this.jdJumpToShopHome({
1538
1538
  shopId: `${_shopId}`,
1539
1539
  logEventInfo,
1540
1540
  });
1541
1541
  } else if (this.isOpenJdAppUrl(_url)) {
1542
1542
  const getOpenAppParams = this.jdOpenAppParams(_url);
1543
1543
  console.log('获取解析后的参数结果', getOpenAppParams);
1544
1544
  if (getOpenAppParams) {
1545
1545
  isJdApp
1546
1546
  ? this.jdNavigateToNative(
1547
1547
  Object.assign({}, getOpenAppParams, {
1548
1548
  logEventInfo,
1549
1549
  }),
1550
1550
  )
1551
1551
  : this.jdNavigateToNative(
1552
1552
  '',
1553
1553
  Object.assign({}, getOpenAppParams, {
1554
1554
  logEventInfo,
1555
1555
  }),
1556
1556
  );
1557
1557
  } else {
1558
1558
  this.jdNavigateToNative(
1559
1559
  '',
1560
1560
  Object.assign({}, getOpenAppParams, {
1561
1561
  logEventInfo,
1562
1562
  }),
1563
1563
  );
1564
1564
  }
1565
1565
  } else {
1566
1566
  this.jdJumpToWeb(_url, logEventInfo);
1567
1567
  }
1568
1568
  break;
1569
1569
  }
1570
1570
  case LinkConfigType.CONFIG_TYPE_JSHOP_DETAIL:
1571
1571
  this.jdJumpToShopDetail({
1572
1572
  venderId: global.info.queryInfo.venderId,
1573
1573
  shopId: global.info.queryInfo.shopId,
1574
1574
  logEventInfo,
1575
1575
  });
1576
1576
  break;
1577
1577
  case LinkConfigType.CONFIG_TYPE_SHOP_HOME:
1578
1578
  this.jdJumpToShopHome({
1579
1579
  ...configDataValue,
1580
1580
  logEventInfo,
1581
1581
  });
1582
1582
  break;
1583
1583
  case LinkConfigType.CONFIG_TYPE_ANCHOR_POINT:
1584
1584
  break;
1585
1585
  case LinkConfigType.CONFIG_TYPE_SHOPPING_GUIDE:
1586
1586
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1587
1587
  const getShoppingGuideParams = this.jdOpenAppParams(configDataValue.clickUrl);
1588
1588
  getShoppingGuideParams &&
1589
1589
  this.jdJumpToShopActivity(
1590
1590
  Object.assign({}, getShoppingGuideParams, {
1591
1591
  logEventInfo,
1592
1592
  }),
1593
1593
  );
1594
1594
  }
1595
1595
  break;
1596
1596
  case LinkConfigType.CONFIG_TYPE_MINI_PROGRAM: {
1597
1597
  const linkUrl = decodeURIComponent(configDataValue?.linkUrl || '');
1598
1598
  const search = linkUrl.match(/\?.+/);
1599
1599
  if (search) {
1600
1600
  const miniQueryData: JumpEventReportInterFace.LinkMiniParams =
1601
1601
  parseQueryUrlString(linkUrl);
1602
1602
  try {
1603
1603
  miniQueryData.param = JSON.parse(<string>miniQueryData?.param);
1604
1604
  } catch (e) {
1605
1605
  console.warn('解析小程序 param 错误:', miniQueryData.param);
1606
1606
  }
1607
1607
  this.jdJumpToMiniProgram(miniQueryData);
1608
1608
  } else {
1609
1609
  console.warn('小程序地址错误:', linkUrl);
1610
1610
  }
1611
1611
  break;
1612
1612
  }
1613
1613
  case LinkConfigType.CONFIG_TYPE_SHOP_SEARCH: {
1614
1614
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1615
1615
  const getShopSearchParams = this.jdOpenAppParams(configDataValue.clickUrl);
1616
1616
  console.log('base 获取店铺结果落地页链接解析后的参数结果', getShopSearchParams);
1617
1617
  getShopSearchParams &&
1618
1618
  this.jdJumpToShopSearch(
1619
1619
  Object.assign({}, getShopSearchParams, {
1620
1620
  logEventInfo,
1621
1621
  }),
1622
1622
  );
1623
1623
  } else {
1624
1624
  this.jdJumpToWeb(configDataValue.clickUrl, logEventInfo);
1625
1625
  }
1626
1626
  break;
1627
1627
  }
1628
1628
  default:
1629
1629
  }
1630
1630
  }
1631
1631
 
1632
1632
  jdOpenAppParams(openAppUrl): object | boolean {
1633
1633
  let getParams: boolean | object = false;
1634
1634
  if (this.isOpenJdAppUrl(openAppUrl)) {
1635
1635
  try {
1636
1636
  getParams = openAppUrl.replace(/openApp\.jdMobile:\/\/virtual\?params=/i, '');
1637
1637
  getParams = JSON.parse(String(getParams));
1638
1638
  } catch (e) {
1639
1639
  console.log(e);
1640
1640
  }
1641
1641
  }
1642
1642
  return getParams;
1643
1643
  }
1644
1644
  isOpenJdAppUrl(openAppUrl) {
1645
1645
  return /openApp\.jdMobile:\/\/virtual\?params=/i.test(openAppUrl);
1646
1646
  }
1647
1647
 
1648
1648
  creatParamToLogStr(eventParam) {
1649
1649
  return eventParam
1650
1650
  ? Object.keys(eventParam)
1651
1651
  .map((key) => {
1652
1652
  return `${key}_${eventParam[key]}`;
1653
1653
  })
1654
1654
  .join('_')
1655
1655
  : '';
1656
1656
  }
1657
1657
 
1658
1658
  jdNavigateToNative(
1659
1659
  url: string,
1660
1660
  params: {
1661
1661
  logEventInfo?: object;
1662
1662
  } = {},
1663
1663
  successBack?: functionType | undefined,
1664
1664
  failBack?: functionType | undefined,
1665
1665
  ) {
1666
1666
  const { logEventInfo } = params;
1667
1667
  const getEparam = logEventInfo || params;
1668
1668
  console.log('jdNavigateToNative params: ', params);
1669
1669
  console.log('logEventInfo params: ', logEventInfo);
1670
1670
  try {
1671
1671
  this.clickEventLog(getEparam);
1672
1672
  } catch (e) {
1673
1673
  console.log(e);
1674
1674
  }
1675
1675
  setTimeout(() => {
1676
1676
  Taro.navigateTo({
1677
1677
  url,
1678
1678
  })
1679
1679
  .then((res) => {
1680
1680
  typeof successBack === 'function' && successBack(res);
1681
1681
  console.log('navigateToWxapp.success', res);
1682
1682
  })
1683
1683
  .catch((err) => {
1684
1684
  typeof failBack === 'function' && failBack(err);
1685
1685
  console.log('navigateToWxapp.fail', err);
1686
1686
  });
1687
1687
  }, 200);
1688
1688
  }
1689
1689
 
1690
1690
  clickEventLog(opts: JumpEventReportInterFace.OptEventLogParams = {}, clickKey = 'click') {
1691
1691
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts;
1692
1692
  if (eventId && jsonParam) {
1693
1693
  const { etModelInfo, logBaseInfo } = jsonParam;
1694
1694
  let getJsonParam = logBaseInfo || jsonParam;
1695
1695
  if (etModelInfo && logBaseInfo) {
1696
1696
  getJsonParam = logBaseInfo;
1697
1697
  } else {
1698
1698
  if (Array.isArray(jsonParam)) {
1699
1699
  getJsonParam = jsonParam;
1700
1700
  } else {
1701
1701
  getJsonParam = Object.assign(
1702
1702
  {},
1703
1703
  {
1704
1704
  shopid: global.info.queryInfo?.shopId,
1705
1705
  },
1706
1706
  jsonParam,
1707
1707
  );
1708
1708
  }
1709
1709
  }
1710
1710
  const miniClickKey = clickKey === 'addToCart' ? 'addToCart' : 'click';
1711
1711
  const miniLogParams = {
1712
1712
  eid: eventId,
1713
1713
  elevel: eventLevel,
1714
1714
  ext: JSON.stringify(getJsonParam),
1715
1715
  etModel: JSON.stringify(etModelInfo || {}),
1716
1716
  pname: this.logPname,
1717
1717
  pparam: JSON.stringify(this.routerInfo.params),
1718
1718
  target: this.routerInfo.path,
1719
1719
  event: this.nativeEvent,
1720
1720
  pageId: this.logPageId,
1721
1721
  ...otherParams,
1722
1722
  };
1723
1723
  console.log('点击埋点参数对象', miniLogParams, miniClickKey);
1724
1724
  global.miniAppLogInstance && global.miniAppLogInstance[miniClickKey](miniLogParams);
1725
1725
  }
1726
1726
  }
1727
1727
 
1728
1728
  exposureEventLog(opts: JumpEventReportInterFace.OptEventLogParams = {}) {
1729
1729
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts;
1730
1730
  if (eventId && jsonParam) {
1731
1731
  const { etModelInfo, logBaseInfo } = jsonParam;
1732
1732
  let getJsonParam = {};
1733
1733
  if (etModelInfo && logBaseInfo) {
1734
1734
  getJsonParam = logBaseInfo;
1735
1735
  } else {
1736
1736
  if (Array.isArray(jsonParam)) {
1737
1737
  getJsonParam = jsonParam;
1738
1738
  } else {
1739
1739
  getJsonParam = Object.assign(
1740
1740
  {},
1741
1741
  {
1742
1742
  shopid: global.info.queryInfo?.shopId,
1743
1743
  },
1744
1744
  jsonParam,
1745
1745
  );
1746
1746
  }
1747
1747
  }
1748
1748
  const miniLogParams = {
1749
1749
  eid: eventId,
1750
1750
  elevel: eventLevel,
1751
1751
  ext: JSON.stringify(getJsonParam),
1752
1752
  etModel: JSON.stringify(etModelInfo || {}),
1753
1753
  pname: this.logPname,
1754
1754
  pparam: JSON.stringify(this.routerInfo.params),
1755
1755
  target: this.routerInfo.path,
1756
1756
  pageId: this.logPageId,
1757
1757
  ...otherParams,
1758
1758
  };
1759
1759
  global.miniAppLogInstance && global.miniAppLogInstance['exposure'](miniLogParams);
1760
1760
  }
1761
1761
  }
1762
1762
 
1763
1763
  initOpenTriggerExposure(type) {
1764
1764
  if (!this.sectionExposureInfo[type]) {
1765
1765
  Taro.nextTick(() => {
1766
1766
  setTimeout(() => {
1767
1767
  global.info.pageInfo.isExposureState = true;
1768
1768
  taroEventInitExposure();
1769
1769
  this.sectionExposureInfo[`${type}`] = true;
1770
1770
  }, 200);
1771
1771
  });
1772
1772
  }
1773
1773
  }