@conecli/cone-render 0.8.31 → 0.8.32

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 global from '../common'
2
1
  objectToUrlEncode,
3
2
  parseQueryUrlString,
4
3
  filterUrlQueryData,
5
4
  routerInfo: {
6
5
  params: {},
7
6
  },
8
7
  nativeEvent: null,
9
8
  jumpConfig: {
10
9
  venderId: null,
11
10
  shopId: null,
12
11
  sourceValue: '',
13
12
  sourceType: 'M-H5',
14
13
  activityType: 'shopx',
15
14
  moduleId: 'none',
16
15
  entrance: 'none',
17
16
  },
18
17
  logPageParamStr: '',
19
18
  public logPageId: string
20
19
  public jumpConfig: JumpEventReportInterFace.JumpH5ReportConfig
21
20
  getConfig(opt) {
22
21
  return Object.assign(this, {}, defaultConfig, opt)
23
22
  }
24
23
  updateInfo(
25
24
  routerInfo,
26
25
  logPname = LogPnameInfo.HOME,
27
26
  pageId = LogPageIdInfo.APP,
28
27
  ) {
29
28
  this.routerInfo = routerInfo
30
29
  this.logPname = logPname
31
30
  this.jumpConfig = Object.assign(
32
31
  {},
33
32
  this.jumpConfig,
34
33
  filterUrlQueryData(routerInfo?.params || {}),
35
34
  )
36
35
  this.logPageId = pageId
37
36
  }
38
37
 
39
38
  reportInfoPv(
40
39
  pageId = LogPageIdInfo.APP,
41
40
  opt: {
42
41
  pageParam?: any
43
42
  } = {},
44
43
  ) {
45
44
  const { pageParam } = opt
46
45
  const pageParamStr =
47
46
  typeof pageParam === 'object' ? JSON.stringify(pageParam) : pageParam
48
47
  this.logPageParamStr = pageParamStr
49
48
  ? pageParamStr
50
49
  : JSON.stringify(this.jumpConfig)
51
50
  return reportPV({
52
51
  pageId,
53
52
  pageParam: this.logPageParamStr,
54
53
  ...opt,
55
54
  })
56
55
  }
57
56
 
58
57
  jdJumpToProduct(skuIds, logEventInfo) {
59
58
  skuIds = skuIds.toString().trim()
60
59
  const getSkuId = skuIds.indexOf(',') !== -1 ? skuIds.split(',')[0] : skuIds
61
60
  this.jdNavigateToNative(
62
61
  `${this.jumpWebUrl.detail}${getSkuId}.html`,
63
62
  logEventInfo,
64
63
  )
65
64
  }
66
65
 
67
66
  jdJumpToRankList(contentId: string | number, rankType = 10, logEventInfo) {
68
67
  const rankUrl = `${this.jumpWebUrl.rank}?contentId=${contentId}&sku=&rankType=${rankType}&fromName=dcpws&hideAd=1`
69
68
  this.jdNavigateToNative(rankUrl, {
70
69
  contentId,
71
70
  ...logEventInfo,
72
71
  })
73
72
  }
74
73
 
75
74
  jdJumpToShopCategory(shopInfo) {
76
75
  this.jdNavigateToNative(
77
76
  `${this.jumpWebUrl.shopHome}?${objectToUrlEncode(
78
77
  this.getShopIdOrVenderIdParams(shopInfo),
79
78
  )}&tabActive=classify`,
80
79
  {
81
80
  ...shopInfo,
82
81
  },
83
82
  )
84
83
  }
85
84
 
86
85
  jdJumpToShopHome(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
87
86
  this.jdNavigateToNative(
88
87
  `${this.jumpWebUrl.mshop}?${objectToUrlEncode(
89
88
  this.getShopIdOrVenderIdParams(shopInfo),
90
89
  )}`,
91
90
  {
92
91
  ...shopInfo,
93
92
  },
94
93
  )
95
94
  }
96
95
 
97
96
  jdJumpToShopLight(shopInfo) {
98
97
  this.jdNavigateToNative(
99
98
  `${this.jumpWebUrl.shopLight}?${objectToUrlEncode(
100
99
  this.getShopIdOrVenderIdParams(shopInfo),
101
100
  )}`,
102
101
  {
103
102
  ...shopInfo,
104
103
  },
105
104
  )
106
105
  }
107
106
 
108
107
  jdJumpToShopMember(shopInfo) {
109
108
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
110
109
  this.jdJumpToWeb(
111
110
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(
112
111
  getShopInfo,
113
112
  )}&venderType=1&channel=406`,
114
113
  shopInfo,
115
114
  )
116
115
  }
117
116
 
118
117
  jdJumpToShopMemberCard(shopInfo) {
119
118
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
120
119
  this.jdJumpToWeb(
121
120
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(getShopInfo)}`,
122
121
  shopInfo,
123
122
  )
124
123
  }
125
124
 
126
125
  jdJumpToTotalPromotion(shopInfo) {
127
126
  const { url, logEventInfo } = shopInfo
128
127
  if (this.isOpenJdAppUrl(url)) {
129
128
  const getOpenAppParams: any = this.jdOpenAppParams(url)
130
129
  if (getOpenAppParams) {
131
130
  if (getOpenAppParams?.activityId) {
132
131
  this.jdJumpToWeb(
133
132
  `${this.jumpWebUrl.totalPromotion}?activity_id=${getOpenAppParams?.activityId}`,
134
133
  shopInfo,
135
134
  )
136
135
  }
137
136
  }
138
137
  } else {
139
138
  this.jdJumpToWeb(url, logEventInfo)
140
139
  }
141
140
  }
142
141
 
143
142
  jdJumpToDongDongChat(paramInfo) {
144
143
  const { venderId = '1', entry = 'm_shop', ...otherInfo } = paramInfo
145
144
  const dongdongUrl = `${this.jumpWebUrl.dongDongChat}?venderId=${venderId}&entry=${entry}&sceneval=2`
146
145
  this.jdJumpToWeb(dongdongUrl, otherInfo)
147
146
  }
148
147
 
149
148
  jdJumpToShopDetail(shopInfo) {
150
149
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
151
150
  this.jdJumpToWeb(
152
151
  `${this.jumpWebUrl.shopIntroduce}?${objectToUrlEncode(getShopInfo)}`,
153
152
  shopInfo,
154
153
  )
155
154
  }
156
155
 
157
156
  jdJumpToShopSearch(shopInfo) {
158
157
  const { shopId, categoryId, keyword, pageId, description, shopName } =
159
158
  shopInfo
160
159
  const cateId = categoryId ? `&cateId=${categoryId}` : ''
161
160
  const addKeyWord = keyword ? `&keyword=${keyword}` : ''
162
161
  const addPageId = pageId ? `&pageId=${pageId}` : ''
163
162
  const searchDes = description ? `&description=${description}` : ''
164
163
  const shopNameDes = shopName ? `&shopName=${shopName}` : ''
165
164
  const searchType = categoryId ? 5 : keyword ? 4 : 3
166
165
  this.jdJumpToWeb(
167
166
  `${this.jumpWebUrl.shopSearch}?shopId=${shopId}&searchType=${searchType}${cateId}${addKeyWord}${addPageId}${searchDes}${shopNameDes}`,
168
167
  shopInfo,
169
168
  )
170
169
  }
171
170
 
172
171
  jdJumpToWeb(
173
172
  url,
174
173
  logEventInfo,
175
174
  successBack?: Function | undefined,
176
175
  failBack?: Function | undefined,
177
176
  ) {
178
177
  this.jdNavigateToNative(
179
178
  url,
180
179
  {
181
180
  ...logEventInfo,
182
181
  },
183
182
  successBack,
184
183
  failBack,
185
184
  )
186
185
  }
187
186
 
188
187
  jdJumpToWebInner(url, logEventInfo) {
189
188
  this.jdJumpToWeb(url, logEventInfo)
190
189
  }
191
190
 
192
191
  jdJumpToLive(liveInfo, logEventInfo = {}) {
193
192
  if (liveInfo?.liveId) {
194
193
  this.jdJumpToWeb(
195
194
  `${this.jumpWebUrl.mLive}/${liveInfo?.liveId}?origin=30`,
196
195
  logEventInfo,
197
196
  )
198
197
  }
199
198
  }
200
199
 
201
200
  jdJumpToShopActivity(shopInfo) {
202
201
  const { configDataValue, logEventInfo, projectId } = shopInfo
203
202
  if (projectId && configDataValue) {
204
203
  this.jdJumpToWeb(
205
204
  `${this.jumpWebUrl.shopSecondActivity}${configDataValue.data}.html`,
206
205
  logEventInfo,
207
206
  )
208
207
  }
209
208
  }
210
209
 
211
210
  jdJumpToActivityPlace(spUrl, logEventInfo) {
212
211
  this.jdNavigateToNative(spUrl, logEventInfo)
213
212
  }
214
213
 
215
214
  jdJumpConfigUrl(detail, logEventInfo = {}) {
216
215
  const { configDataType, configDataValue } = detail
217
216
  console.log(
218
217
  'jdJumpConfigUrl web.base configDataType:',
219
218
  configDataType,
220
219
  configDataValue,
221
220
  )
222
221
  switch (configDataType) {
223
222
  case LinkConfigType.CONFIG_TYPE_SKU_LIST:
224
223
  this.jdJumpToProduct(configDataValue.skuIds, logEventInfo)
225
224
  break
226
225
  case LinkConfigType.CONFIG_TYPE_COUPON_LIST:
227
226
  this.jdJumpToWeb(
228
227
  `${this.jumpWebUrl.shopCoupon}?couponType=1&shopId=${global.info.queryInfo.shopId}&venderId=${global.info.queryInfo.venderId}`,
229
228
  {},
230
229
  )
231
230
  break
232
231
  case LinkConfigType.CONFIG_TYPE_CATEGORY:
233
232
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
234
233
  const getShopSearchParams = this.jdOpenAppParams(
235
234
  configDataValue.clickUrl,
236
235
  )
237
236
  getShopSearchParams &&
238
237
  this.jdJumpToShopSearch(
239
238
  Object.assign({}, getShopSearchParams, {
240
239
  logEventInfo,
241
240
  }),
242
241
  )
243
242
  } else {
244
243
  this.jdJumpToShopSearch(
245
244
  configDataValue['cid']
246
245
  ? Object.assign(
247
246
  {},
248
247
  {
249
248
  shopId: global.info.queryInfo.shopId,
250
249
  categoryId: configDataValue.cid,
251
250
  ...configDataValue,
252
251
  logEventInfo,
253
252
  },
254
253
  )
255
254
  : {
256
255
  shopId: global.info.queryInfo.shopId,
257
256
  logEventInfo,
258
257
  },
259
258
  )
260
259
  }
261
260
  break
262
261
  case LinkConfigType.CONFIG_TYPE_CATEGORY_PAGE:
263
262
  this.jdJumpToShopCategory({
264
263
  ...configDataValue,
265
264
  logEventInfo,
266
265
  })
267
266
  break
268
267
  case LinkConfigType.CONFIG_TYPE_MEMBER:
269
268
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
270
269
  const getShopMemberParams = this.jdOpenAppParams(
271
270
  configDataValue.clickUrl,
272
271
  )
273
272
  getShopMemberParams &&
274
273
  this.jdJumpToShopMember(
275
274
  Object.assign({}, getShopMemberParams, {
276
275
  logEventInfo,
277
276
  }),
278
277
  )
279
278
  } else {
280
279
  this.jdJumpToShopMember({
281
280
  shopId: global.info.queryInfo.shopId,
282
281
  venderId: configDataValue.shopDetail,
283
282
  logEventInfo,
284
283
  })
285
284
  }
286
285
  break
287
286
  case LinkConfigType.CONFIG_TYPE_SHOP_ACTIVITY:
288
287
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
289
288
  const getShopActivityParams = this.jdOpenAppParams(
290
289
  configDataValue.clickUrl,
291
290
  )
292
291
  if (
293
292
  getShopActivityParams &&
294
293
  getShopActivityParams['des'] == 'jshopActivity'
295
294
  ) {
296
295
  this.jdJumpToShopActivity({
297
296
  projectId: configDataValue['projectId'],
298
297
  configDataValue,
299
298
  logEventInfo,
300
299
  })
301
300
  }
302
301
  } else if (configDataValue['projectId']) {
303
302
  this.jdJumpToShopActivity({
304
303
  projectId: configDataValue['projectId'],
305
304
  configDataValue,
306
305
  logEventInfo,
307
306
  })
308
307
  }
309
308
  break
310
309
  case LinkConfigType.CONFIG_TYPE_CUSTOM_LINK:
311
310
  case LinkConfigType.CONFIG_TYPE_FINANCE_COUPON:
312
311
  const _url = configDataValue.linkUrl
313
312
  const isProductM = /item\.m\.jd\.com/.test(_url)
314
313
  const isProductPC = /item\.jd\.com/.test(_url)
315
314
  if (
316
315
  _url.indexOf('to=') === -1 &&
317
316
  _url.indexOf(`${domain.mshop.replace(/https?:/, '')}/?shopId=`) !== -1
318
317
  ) {
319
318
  const _shopId = _url.match(/\d+/g)[0]
320
319
  this.jdJumpToShopHome({
321
320
  shopId: `${_shopId}`,
322
321
  logEventInfo,
323
322
  })
324
323
  } else if (this.isOpenJdAppUrl(_url)) {
325
324
  const getOpenAppParams: any = this.jdOpenAppParams(_url)
326
325
  if (getOpenAppParams) {
327
326
  if (getOpenAppParams.jumpTab == 'allProduct') {
328
327
  this.jdJumpToTabAllProduct(
329
328
  global.info.queryInfo.shopId,
330
329
  global.info.queryInfo.venderId,
331
330
  )
332
331
  } else if (
333
332
  getOpenAppParams.des == 'productList' &&
334
333
  getOpenAppParams.from == 'couponBatch'
335
334
  ) {
336
335
  this.jdJumpToCouponSearchProductList(getOpenAppParams?.couponId)
337
336
  } else if (getOpenAppParams.des == 'vapp') {
338
337
  this.jdJumpToWeb(
339
338
  `https:
340
339
  getOpenAppParams.category
341
340
  }&des=${getOpenAppParams.des}&vapptype=${
342
341
  getOpenAppParams.vapptype
343
342
  }&appId=${getOpenAppParams.appId}&path=${
344
343
  getOpenAppParams.path
345
344
  }&param=${encodeURI(JSON.stringify(getOpenAppParams.param))}`,
346
345
  logEventInfo,
347
346
  )
348
347
  } else {
349
348
  this.jdNavigateToNative(
350
349
  '',
351
350
  Object.assign({}, getOpenAppParams, {
352
351
  logEventInfo,
353
352
  }),
354
353
  )
355
354
  }
356
355
  }
357
356
  } else if (isProductM || isProductPC) {
358
357
  const skuid = _url.match(/\d+/g)[0]
359
358
  if (skuid) {
360
359
  this.jdJumpToProduct(skuid, logEventInfo)
361
360
  }
362
361
  } else {
363
362
  this.jdJumpToWeb(_url, logEventInfo)
364
363
  }
365
364
  break
366
365
  case LinkConfigType.CONFIG_TYPE_JSHOP_DETAIL:
367
366
  this.jdJumpToShopDetail({
368
367
  venderId: global.info.queryInfo.venderId,
369
368
  shopId: global.info.queryInfo.shopId,
370
369
  logEventInfo,
371
370
  })
372
371
  break
373
372
  case LinkConfigType.CONFIG_TYPE_SHOP_HOME:
374
373
  this.jdJumpToShopHome({
375
374
  ...configDataValue,
376
375
  logEventInfo,
377
376
  })
378
377
  break
379
378
  case LinkConfigType.CONFIG_TYPE_ANCHOR_POINT:
380
379
  break
381
380
  case LinkConfigType.CONFIG_TYPE_SHOPPING_GUIDE:
382
381
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
383
382
  const getShoppingGuideParams = this.jdOpenAppParams(
384
383
  configDataValue.clickUrl,
385
384
  )
386
385
  getShoppingGuideParams &&
387
386
  this.jdJumpToShopActivity(
388
387
  Object.assign({}, getShoppingGuideParams, {
389
388
  logEventInfo,
390
389
  }),
391
390
  )
392
391
  }
393
392
  break
394
393
  case LinkConfigType.CONFIG_TYPE_MINI_PROGRAM: {
395
394
  const linkUrl = decodeURIComponent(configDataValue?.linkUrl || '')
396
395
  const search = linkUrl.match(/\?.+/)
397
396
  if (search) {
398
397
  const miniQueryData: JumpEventReportInterFace.LinkMiniParams =
399
398
  parseQueryUrlString(linkUrl)
400
399
  try {
401
400
  miniQueryData.param = JSON.parse(<string>miniQueryData?.param)
402
401
  } catch (e) {
403
402
  console.warn('解析小程序 param 错误:', miniQueryData.param)
404
403
  }
405
404
  this.jdJumpToMiniProgram(miniQueryData)
406
405
  } else {
407
406
  console.warn('小程序地址错误:', linkUrl)
408
407
  }
409
408
  break
410
409
  }
411
410
  default:
412
411
  }
413
412
  }
414
413
 
415
414
  jdJumpToTabAllProduct(shopId, venderId, logEventInfo = {}) {
416
415
  this.jdJumpToWeb(
417
416
  `${this.jumpWebUrl.shopHome}?shopId=${shopId}&venderId=${venderId}&tabActive=home-product`,
418
417
  logEventInfo,
419
418
  )
420
419
  }
421
420
 
422
421
  jdJumpToTabAllProductInner(shopId, venderId, logEventInfo = {}) {
423
422
  this.jdJumpToTabAllProduct(shopId, venderId, logEventInfo)
424
423
  }
425
424
 
426
425
  jdJumpToCouponSearchProductList(couponId, logEventInfo = {}) {
427
426
  this.jdJumpToWeb(
428
427
  `${this.jumpWebUrl.couponSearch}?couponbatch=${couponId}&sceneval=2`,
429
428
  logEventInfo,
430
429
  )
431
430
  }
432
431
 
433
432
  jdNavigateToNative(
434
433
  url: string,
435
434
  params: {
436
435
  logEventInfo?: object
437
436
  } = {},
438
437
  successBack?: Function | undefined,
439
438
  failBack?: Function | undefined,
440
439
  ) {
441
440
  const { logEventInfo } = params
442
441
  const getEparam = logEventInfo || params
443
442
  console.log(`url:::::::${url}`)
444
443
  global.info.pageInfo.dataType === BUSINESS_TYPE.ONLINE &&
445
444
  this.clickEventLog(getEparam)
446
445
  .then(() => {
447
446
  typeof successBack == 'function'
448
447
  ? successBack(url)
449
448
  : (window.location.href = url)
450
449
  })
451
450
  .catch(() => {
452
451
  typeof failBack == 'function' && failBack(url)
453
452
  })
454
453
  }
455
454
 
456
455
  clickEventLog(
457
456
  opts: JumpEventReportInterFace.OptEventLogParams = {},
458
457
  reportKey = 'click',
459
458
  ) {
460
459
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts
461
460
  ;/TerminatorNew_/.test(`${eventId}`) &&
462
461
  console.log(`当前h5的楼层模块eventId为====${eventId}`)
463
462
  if (eventId && jsonParam) {
464
463
  const { etModelInfo, logBaseInfo } = jsonParam
465
464
  const getJsonParam =
466
465
  etModelInfo && logBaseInfo
467
466
  ? logBaseInfo
468
467
  : Object.assign(
469
468
  {},
470
469
  {
471
470
  shopid: global.info.queryInfo?.shopId,
472
471
  },
473
472
  jsonParam,
474
473
  )
475
474
  const webLogParams = {
476
475
  eid: eventId,
477
476
  elevel: eventLevel,
478
477
  jsonParam: JSON.stringify(getJsonParam),
479
478
  etModel: JSON.stringify(etModelInfo || {}),
480
479
  pageId: this.logPageId,
481
480
  pageParam: this.logPageParamStr,
482
481
  ...otherParams,
483
482
  }
484
483
  return /click|exposure/.test(reportKey)
485
484
  ? reportClick(webLogParams)
486
485
  : reportToCart(opts)
487
486
  } else {
488
487
  console.log('暂无埋点参数eventId和jsonParam')
489
488
  return Promise.resolve(false)
490
489
  }
491
490
  }
492
491
 
493
492
  exposureEventLog(opts) {
494
493
  return global.info.pageInfo.dataType === BUSINESS_TYPE.ONLINE
495
494
  ? this.clickEventLog(
496
495
  {
497
496
  ...opts,
498
497
  exposureState: true,
499
498
  },
500
499
  'exposure',
501
500
  )
502
501
  : Promise.resolve(false)
503
502
  }
503
+ import global from '../common'
504
504
  objectToUrlEncode,
505
505
  parseQueryUrlString,
506
506
  filterUrlQueryData,
507
507
  routerInfo: {
508
508
  params: {},
509
509
  },
510
510
  nativeEvent: null,
511
511
  jumpConfig: {
512
512
  venderId: null,
513
513
  shopId: null,
514
514
  sourceValue: '',
515
515
  sourceType: 'M-H5',
516
516
  activityType: 'shopx',
517
517
  moduleId: 'none',
518
518
  entrance: 'none',
519
519
  },
520
520
  logPageParamStr: '',
521
521
  public logPageId: string
522
522
  public jumpConfig: JumpEventReportInterFace.JumpH5ReportConfig
523
523
  getConfig(opt) {
524
524
  return Object.assign(this, {}, defaultConfig, opt)
525
525
  }
526
526
  updateInfo(
527
527
  routerInfo,
528
528
  logPname = LogPnameInfo.HOME,
529
529
  pageId = LogPageIdInfo.APP,
530
530
  ) {
531
531
  this.routerInfo = routerInfo
532
532
  this.logPname = logPname
533
533
  this.jumpConfig = Object.assign(
534
534
  {},
535
535
  this.jumpConfig,
536
536
  filterUrlQueryData(routerInfo?.params || {}),
537
537
  )
538
538
  this.logPageId = pageId
539
539
  }
540
540
 
541
541
  reportInfoPv(
542
542
  pageId = LogPageIdInfo.APP,
543
543
  opt: {
544
544
  pageParam?: any
545
545
  } = {},
546
546
  ) {
547
547
  const { pageParam } = opt
548
548
  const pageParamStr =
549
549
  typeof pageParam === 'object' ? JSON.stringify(pageParam) : pageParam
550
550
  this.logPageParamStr = pageParamStr
551
551
  ? pageParamStr
552
552
  : JSON.stringify(this.jumpConfig)
553
553
  return reportPV({
554
554
  pageId,
555
555
  pageParam: this.logPageParamStr,
556
556
  ...opt,
557
557
  })
558
558
  }
559
559
 
560
560
  jdJumpToProduct(skuIds, logEventInfo) {
561
561
  skuIds = skuIds.toString().trim()
562
562
  const getSkuId = skuIds.indexOf(',') !== -1 ? skuIds.split(',')[0] : skuIds
563
563
  this.jdNavigateToNative(
564
564
  `${this.jumpWebUrl.detail}${getSkuId}.html`,
565
565
  logEventInfo,
566
566
  )
567
567
  }
568
568
 
569
569
  jdJumpToRankList(contentId: string | number, rankType = 10, logEventInfo) {
570
570
  const rankUrl = `${this.jumpWebUrl.rank}?contentId=${contentId}&sku=&rankType=${rankType}&fromName=dcpws&hideAd=1`
571
571
  this.jdNavigateToNative(rankUrl, {
572
572
  contentId,
573
573
  ...logEventInfo,
574
574
  })
575
575
  }
576
576
 
577
577
  jdJumpToShopCategory(shopInfo) {
578
578
  this.jdNavigateToNative(
579
579
  `${this.jumpWebUrl.shopHome}?${objectToUrlEncode(
580
580
  this.getShopIdOrVenderIdParams(shopInfo),
581
581
  )}&tabActive=classify`,
582
582
  {
583
583
  ...shopInfo,
584
584
  },
585
585
  )
586
586
  }
587
587
 
588
588
  jdJumpToShopHome(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
589
589
  this.jdNavigateToNative(
590
590
  `${this.jumpWebUrl.mshop}?${objectToUrlEncode(
591
591
  this.getShopIdOrVenderIdParams(shopInfo),
592
592
  )}`,
593
593
  {
594
594
  ...shopInfo,
595
595
  },
596
596
  )
597
597
  }
598
598
 
599
599
  jdJumpToShopLight(shopInfo) {
600
600
  this.jdNavigateToNative(
601
601
  `${this.jumpWebUrl.shopLight}?${objectToUrlEncode(
602
602
  this.getShopIdOrVenderIdParams(shopInfo),
603
603
  )}`,
604
604
  {
605
605
  ...shopInfo,
606
606
  },
607
607
  )
608
608
  }
609
609
 
610
610
  jdJumpToShopMember(shopInfo) {
611
611
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
612
612
  this.jdJumpToWeb(
613
613
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(
614
614
  getShopInfo,
615
615
  )}&venderType=1&channel=406`,
616
616
  shopInfo,
617
617
  )
618
618
  }
619
619
 
620
620
  jdJumpToShopMemberCard(shopInfo) {
621
621
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
622
622
  this.jdJumpToWeb(
623
623
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(getShopInfo)}`,
624
624
  shopInfo,
625
625
  )
626
626
  }
627
627
 
628
628
  jdJumpToTotalPromotion(shopInfo) {
629
629
  const { url, logEventInfo } = shopInfo
630
630
  if (this.isOpenJdAppUrl(url)) {
631
631
  const getOpenAppParams: any = this.jdOpenAppParams(url)
632
632
  if (getOpenAppParams) {
633
633
  if (getOpenAppParams?.activityId) {
634
634
  this.jdJumpToWeb(
635
635
  `${this.jumpWebUrl.totalPromotion}?activity_id=${getOpenAppParams?.activityId}`,
636
636
  shopInfo,
637
637
  )
638
638
  }
639
639
  }
640
640
  } else {
641
641
  this.jdJumpToWeb(url, logEventInfo)
642
642
  }
643
643
  }
644
644
 
645
645
  jdJumpToDongDongChat(paramInfo) {
646
646
  const { venderId = '1', entry = 'm_shop', ...otherInfo } = paramInfo
647
647
  const dongdongUrl = `${this.jumpWebUrl.dongDongChat}?venderId=${venderId}&entry=${entry}&sceneval=2`
648
648
  this.jdJumpToWeb(dongdongUrl, otherInfo)
649
649
  }
650
650
 
651
651
  jdJumpToShopDetail(shopInfo) {
652
652
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
653
653
  this.jdJumpToWeb(
654
654
  `${this.jumpWebUrl.shopIntroduce}?${objectToUrlEncode(getShopInfo)}`,
655
655
  shopInfo,
656
656
  )
657
657
  }
658
658
 
659
659
  jdJumpToShopSearch(shopInfo) {
660
660
  const getInfo = Object.assign(
661
661
  {},
662
662
  {
663
663
  shopId: global.info.queryInfo.shopId,
664
664
  venderId: global.info.queryInfo.venderId,
665
665
  },
666
666
  shopInfo,
667
667
  )
668
668
  const { shopId, categoryId, keyword, pageId, description, shopName } =
669
669
  getInfo
670
670
  const cateId = categoryId ? `&cateId=${typeof categoryId === 'string' ? categoryId?.trim() : categoryId}` : ''
671
671
  const addKeyWord = keyword ? `&keyword=${keyword}` : ''
672
672
  const addPageId = pageId ? `&pageId=${pageId}` : ''
673
673
  const searchDes = description ? `&description=${description}` : ''
674
674
  const shopNameDes = shopName ? `&shopName=${shopName}` : ''
675
675
  const searchType = categoryId ? 5 : keyword ? 4 : 3
676
676
  this.jdJumpToWeb(
677
677
  `${this.jumpWebUrl.shopSearch}?shopId=${shopId}&searchType=${searchType}${cateId}${addKeyWord}${addPageId}${searchDes}${shopNameDes}`,
678
678
  getInfo,
679
679
  )
680
680
  }
681
681
 
682
682
  jdJumpToWeb(
683
683
  url,
684
684
  logEventInfo,
685
685
  successBack?: Function | undefined,
686
686
  failBack?: Function | undefined,
687
687
  ) {
688
688
  this.jdNavigateToNative(
689
689
  url,
690
690
  {
691
691
  ...logEventInfo,
692
692
  },
693
693
  successBack,
694
694
  failBack,
695
695
  )
696
696
  }
697
697
 
698
698
  jdJumpToWebInner(url, logEventInfo) {
699
699
  this.jdJumpToWeb(url, logEventInfo)
700
700
  }
701
701
 
702
702
  jdJumpToLive(liveInfo, logEventInfo = {}) {
703
703
  if (liveInfo?.liveId) {
704
704
  this.jdJumpToWeb(
705
705
  `${this.jumpWebUrl.mLive}/${liveInfo?.liveId}?origin=30`,
706
706
  logEventInfo,
707
707
  )
708
708
  }
709
709
  }
710
710
 
711
711
  jdJumpToShopActivity(shopInfo) {
712
712
  const { configDataValue, logEventInfo, projectId } = shopInfo
713
713
  if (projectId && configDataValue) {
714
714
  this.jdJumpToWeb(
715
715
  `${this.jumpWebUrl.shopSecondActivity}${configDataValue.data}.html`,
716
716
  logEventInfo,
717
717
  )
718
718
  }
719
719
  }
720
720
 
721
721
  jdJumpToActivityPlace(spUrl, logEventInfo) {
722
722
  this.jdNavigateToNative(spUrl, logEventInfo)
723
723
  }
724
724
 
725
725
  jdJumpConfigUrl(detail, logEventInfo = {}) {
726
726
  const { configDataType, configDataValue } = detail
727
727
  console.log(
728
728
  'jdJumpConfigUrl web.base configDataType:',
729
729
  configDataType,
730
730
  configDataValue,
731
731
  )
732
732
  switch (configDataType) {
733
733
  case LinkConfigType.CONFIG_TYPE_SKU_LIST:
734
734
  this.jdJumpToProduct(configDataValue.skuIds, logEventInfo)
735
735
  break
736
736
  case LinkConfigType.CONFIG_TYPE_COUPON_LIST:
737
737
  this.jdJumpToWeb(
738
738
  `${this.jumpWebUrl.shopCoupon}?couponType=1&shopId=${global.info.queryInfo.shopId}&venderId=${global.info.queryInfo.venderId}`,
739
739
  {},
740
740
  )
741
741
  break
742
742
  case LinkConfigType.CONFIG_TYPE_CATEGORY:
743
743
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
744
744
  const getShopSearchParams = this.jdOpenAppParams(
745
745
  configDataValue.clickUrl,
746
746
  )
747
747
  getShopSearchParams &&
748
748
  this.jdJumpToShopSearch(
749
749
  Object.assign({}, getShopSearchParams, {
750
750
  logEventInfo,
751
751
  }),
752
752
  )
753
753
  } else {
754
754
  this.jdJumpToShopSearch(
755
755
  configDataValue['cid']
756
756
  ? Object.assign(
757
757
  {},
758
758
  {
759
759
  shopId: global.info.queryInfo.shopId,
760
760
  categoryId: configDataValue.cid,
761
761
  ...configDataValue,
762
762
  logEventInfo,
763
763
  },
764
764
  )
765
765
  : {
766
766
  shopId: global.info.queryInfo.shopId,
767
767
  logEventInfo,
768
768
  },
769
769
  )
770
770
  }
771
771
  break
772
772
  case LinkConfigType.CONFIG_TYPE_CATEGORY_PAGE:
773
773
  this.jdJumpToShopCategory({
774
774
  ...configDataValue,
775
775
  logEventInfo,
776
776
  })
777
777
  break
778
778
  case LinkConfigType.CONFIG_TYPE_MEMBER:
779
779
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
780
780
  const getShopMemberParams = this.jdOpenAppParams(
781
781
  configDataValue.clickUrl,
782
782
  )
783
783
  getShopMemberParams &&
784
784
  this.jdJumpToShopMember(
785
785
  Object.assign({}, getShopMemberParams, {
786
786
  logEventInfo,
787
787
  }),
788
788
  )
789
789
  } else {
790
790
  this.jdJumpToShopMember({
791
791
  shopId: global.info.queryInfo.shopId,
792
792
  venderId: configDataValue.shopDetail,
793
793
  logEventInfo,
794
794
  })
795
795
  }
796
796
  break
797
797
  case LinkConfigType.CONFIG_TYPE_SHOP_ACTIVITY:
798
798
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
799
799
  const getShopActivityParams = this.jdOpenAppParams(
800
800
  configDataValue.clickUrl,
801
801
  )
802
802
  if (
803
803
  getShopActivityParams &&
804
804
  getShopActivityParams['des'] == 'jshopActivity'
805
805
  ) {
806
806
  this.jdJumpToShopActivity({
807
807
  projectId: configDataValue['projectId'],
808
808
  configDataValue,
809
809
  logEventInfo,
810
810
  })
811
811
  }
812
812
  } else if (configDataValue['projectId']) {
813
813
  this.jdJumpToShopActivity({
814
814
  projectId: configDataValue['projectId'],
815
815
  configDataValue,
816
816
  logEventInfo,
817
817
  })
818
818
  }
819
819
  break
820
820
  case LinkConfigType.CONFIG_TYPE_CUSTOM_LINK:
821
821
  case LinkConfigType.CONFIG_TYPE_FINANCE_COUPON:
822
822
  const _url = configDataValue.linkUrl
823
823
  const isProductM = /item\.m\.jd\.com/.test(_url)
824
824
  const isProductPC = /item\.jd\.com/.test(_url)
825
825
  if (
826
826
  _url.indexOf('to=') === -1 &&
827
827
  _url.indexOf(`${domain.mshop.replace(/https?:/, '')}/?shopId=`) !== -1
828
828
  ) {
829
829
  const _shopId = _url.match(/\d+/g)[0]
830
830
  this.jdJumpToShopHome({
831
831
  shopId: `${_shopId}`,
832
832
  logEventInfo,
833
833
  })
834
834
  } else if (this.isOpenJdAppUrl(_url)) {
835
835
  const getOpenAppParams: any = this.jdOpenAppParams(_url)
836
836
  if (getOpenAppParams) {
837
837
  if (getOpenAppParams.jumpTab == 'allProduct') {
838
838
  this.jdJumpToTabAllProduct(
839
839
  global.info.queryInfo.shopId,
840
840
  global.info.queryInfo.venderId,
841
841
  )
842
842
  } else if (
843
843
  getOpenAppParams.des == 'productList' &&
844
844
  getOpenAppParams.from == 'couponBatch'
845
845
  ) {
846
846
  this.jdJumpToCouponSearchProductList(getOpenAppParams?.couponId)
847
847
  } else if (getOpenAppParams.des == 'vapp') {
848
848
  this.jdJumpToWeb(
849
849
  `https:
850
850
  getOpenAppParams.category
851
851
  }&des=${getOpenAppParams.des}&vapptype=${
852
852
  getOpenAppParams.vapptype
853
853
  }&appId=${getOpenAppParams.appId}&path=${
854
854
  getOpenAppParams.path
855
855
  }&param=${encodeURI(JSON.stringify(getOpenAppParams.param))}`,
856
856
  logEventInfo,
857
857
  )
858
858
  } else {
859
859
  this.jdNavigateToNative(
860
860
  '',
861
861
  Object.assign({}, getOpenAppParams, {
862
862
  logEventInfo,
863
863
  }),
864
864
  )
865
865
  }
866
866
  }
867
867
  } else if (isProductM || isProductPC) {
868
868
  const skuid = _url.match(/\d+/g)[0]
869
869
  if (skuid) {
870
870
  this.jdJumpToProduct(skuid, logEventInfo)
871
871
  }
872
872
  } else {
873
873
  this.jdJumpToWeb(_url, logEventInfo)
874
874
  }
875
875
  break
876
876
  case LinkConfigType.CONFIG_TYPE_JSHOP_DETAIL:
877
877
  this.jdJumpToShopDetail({
878
878
  venderId: global.info.queryInfo.venderId,
879
879
  shopId: global.info.queryInfo.shopId,
880
880
  logEventInfo,
881
881
  })
882
882
  break
883
883
  case LinkConfigType.CONFIG_TYPE_SHOP_HOME:
884
884
  this.jdJumpToShopHome({
885
885
  ...configDataValue,
886
886
  logEventInfo,
887
887
  })
888
888
  break
889
889
  case LinkConfigType.CONFIG_TYPE_ANCHOR_POINT:
890
890
  break
891
891
  case LinkConfigType.CONFIG_TYPE_SHOPPING_GUIDE:
892
892
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
893
893
  const getShoppingGuideParams = this.jdOpenAppParams(
894
894
  configDataValue.clickUrl,
895
895
  )
896
896
  getShoppingGuideParams &&
897
897
  this.jdJumpToShopActivity(
898
898
  Object.assign({}, getShoppingGuideParams, {
899
899
  logEventInfo,
900
900
  }),
901
901
  )
902
902
  }
903
903
  break
904
904
  case LinkConfigType.CONFIG_TYPE_MINI_PROGRAM: {
905
905
  const linkUrl = decodeURIComponent(configDataValue?.linkUrl || '')
906
906
  const search = linkUrl.match(/\?.+/)
907
907
  if (search) {
908
908
  const miniQueryData: JumpEventReportInterFace.LinkMiniParams =
909
909
  parseQueryUrlString(linkUrl)
910
910
  try {
911
911
  miniQueryData.param = JSON.parse(<string>miniQueryData?.param)
912
912
  } catch (e) {
913
913
  console.warn('解析小程序 param 错误:', miniQueryData.param)
914
914
  }
915
915
  this.jdJumpToMiniProgram(miniQueryData)
916
916
  } else {
917
917
  console.warn('小程序地址错误:', linkUrl)
918
918
  }
919
919
  break
920
920
  }
921
921
  default:
922
922
  }
923
923
  }
924
924
 
925
925
  jdJumpToTabAllProduct(shopId, venderId, logEventInfo = {}) {
926
926
  this.jdJumpToWeb(
927
927
  `${this.jumpWebUrl.shopHome}?shopId=${shopId}&venderId=${venderId}&tabActive=home-product`,
928
928
  logEventInfo,
929
929
  )
930
930
  }
931
931
 
932
932
  jdJumpToTabAllProductInner(shopId, venderId, logEventInfo = {}) {
933
933
  this.jdJumpToTabAllProduct(shopId, venderId, logEventInfo)
934
934
  }
935
935
 
936
936
  jdJumpToCouponSearchProductList(couponId, logEventInfo = {}) {
937
937
  this.jdJumpToWeb(
938
938
  `${this.jumpWebUrl.couponSearch}?couponbatch=${couponId}&sceneval=2`,
939
939
  logEventInfo,
940
940
  )
941
941
  }
942
942
 
943
943
  jdNavigateToNative(
944
944
  url: string,
945
945
  params: {
946
946
  logEventInfo?: object
947
947
  } = {},
948
948
  successBack?: Function | undefined,
949
949
  failBack?: Function | undefined,
950
950
  ) {
951
951
  const { logEventInfo } = params
952
952
  const getEparam = logEventInfo || params
953
953
  console.log(`url:::::::${url}`)
954
954
  global.info.pageInfo.dataType === BUSINESS_TYPE.ONLINE &&
955
955
  this.clickEventLog(getEparam)
956
956
  .then(() => {
957
957
  typeof successBack == 'function'
958
958
  ? successBack(url)
959
959
  : (window.location.href = url)
960
960
  })
961
961
  .catch(() => {
962
962
  typeof failBack == 'function' && failBack(url)
963
963
  })
964
964
  }
965
965
 
966
966
  clickEventLog(
967
967
  opts: JumpEventReportInterFace.OptEventLogParams = {},
968
968
  reportKey = 'click',
969
969
  ) {
970
970
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts
971
971
  ;/TerminatorNew_/.test(`${eventId}`) &&
972
972
  console.log(`当前h5的楼层模块eventId为====${eventId}`)
973
973
  if (eventId && jsonParam) {
974
974
  const { etModelInfo, logBaseInfo } = jsonParam
975
975
  const getJsonParam =
976
976
  etModelInfo && logBaseInfo
977
977
  ? logBaseInfo
978
978
  : Object.assign(
979
979
  {},
980
980
  {
981
981
  shopid: global.info.queryInfo?.shopId,
982
982
  },
983
983
  jsonParam,
984
984
  )
985
985
  const webLogParams = {
986
986
  eid: eventId,
987
987
  elevel: eventLevel,
988
988
  jsonParam: JSON.stringify(getJsonParam),
989
989
  etModel: JSON.stringify(etModelInfo || {}),
990
990
  pageId: this.logPageId,
991
991
  pageParam: this.logPageParamStr,
992
992
  ...otherParams,
993
993
  }
994
994
  return /click|exposure/.test(reportKey)
995
995
  ? reportClick(webLogParams)
996
996
  : reportToCart(opts)
997
997
  } else {
998
998
  console.log('暂无埋点参数eventId和jsonParam')
999
999
  return Promise.resolve(false)
1000
1000
  }
1001
1001
  }
1002
1002
 
1003
1003
  exposureEventLog(opts) {
1004
1004
  return global.info.pageInfo.dataType === BUSINESS_TYPE.ONLINE
1005
1005
  ? this.clickEventLog(
1006
1006
  {
1007
1007
  ...opts,
1008
1008
  exposureState: true,
1009
1009
  },
1010
1010
  'exposure',
1011
1011
  )
1012
1012
  : Promise.resolve(false)
1013
1013
  }