@conecli/cone-render 0.10.1-shop3.3 → 0.10.1-shop3.5

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.
Files changed (32) hide show
  1. package/dist/api/index.ts +1 -1
  2. package/dist/common/const.ts +1 -1
  3. package/dist/components/base/CustomScrollView/index.tsx +1 -1
  4. package/dist/components/base/ExposureSmart/index.h5.module.scss +12 -2
  5. package/dist/components/base/ExposureSmart/index.h5.tsx +1 -1
  6. package/dist/components/base/ExposureSmart/reporter.tsx +1 -1
  7. package/dist/components/base/ItemViewExposureSmart/index.module.scss +2 -2
  8. package/dist/components/base/ItemViewExposureSmart/index.tsx +1 -1
  9. package/dist/interface/jumpEventReport.ts +1 -1
  10. package/dist/interface/service.ts +1 -1
  11. package/dist/jumpEventReport/base.ts +1 -1
  12. package/dist/jumpEventReport/jdJumpJdApp.ts +1 -1
  13. package/dist/jumpEventReport/jumpUrlConfig/base.ts +1 -1
  14. package/dist/jumpEventReport/logEventConfig.ts +1 -1
  15. package/dist/jumpEventReport/web/report.ts +1 -1
  16. package/dist/jumpEventReport/web.base.ts +1 -1
  17. package/dist/jumpEventReport/web.jd.ts +1 -1
  18. package/dist/modules/ContainerFloorList/index.h5.module.scss +3 -0
  19. package/dist/modules/ContainerFloorList/index.h5.tsx +1 -1
  20. package/dist/open/api/util.ts +1 -1
  21. package/dist/service/http/colorSign.ts +1 -1
  22. package/dist/service/http/const.ts +1 -1
  23. package/dist/service/requestServer.h5.ts +1 -1
  24. package/dist/service/requestServer.ts +1 -1
  25. package/dist/utils/connectNativeJsBridge.ts +1 -1
  26. package/dist/utils/h5Utils.ts +1 -1
  27. package/dist/utils/index.h5.ts +1 -1
  28. package/dist/utils/index.ts +1 -1
  29. package/dist/utils/index.weapp.ts +1 -1
  30. package/dist/utils/sColor.js +1 -0
  31. package/dist/utils/utils.ts +1 -1
  32. package/package.json +1 -1
@@ -1 +1 @@
1
- import global from '../common'
2
1
  BUSINESS_TYPE,
3
2
  SHOP_MENU_ID_TYPE,
4
3
  SHOP_MENU_ID_NAME,
5
4
  SECTION_HOME_TAB_TYPE,
6
5
  SECTION_HOME_TAB_NAME_TYPE,
7
6
  objectToUrlEncode,
8
7
  parseQueryUrlString,
9
8
  filterUrlQueryData,
10
9
  isJdAndHarmonyDevice,
11
10
  routerInfo: {
12
11
  params: {},
13
12
  },
14
13
  nativeEvent: null,
15
14
  jumpConfig: {
16
15
  venderId: null,
17
16
  shopId: null,
18
17
  sourceValue: '',
19
18
  sourceType: 'M-H5',
20
19
  activityType: 'shopx',
21
20
  moduleId: 'none',
22
21
  entrance: 'none',
23
22
  },
24
23
  logPageParamStr: '',
25
24
  public logPageId: string
26
25
  public jumpConfig: JumpEventReportInterFace.JumpH5ReportConfig
27
26
  getConfig(opt) {
28
27
  return Object.assign(this, {}, defaultConfig, opt)
29
28
  }
30
29
  updateInfo(
31
30
  routerInfo,
32
31
  logPname = LogPnameInfo.HOME,
33
32
  pageId = LogPageIdInfo.APP,
34
33
  ) {
35
34
  this.routerInfo = routerInfo
36
35
  this.logPname = logPname
37
36
  this.jumpConfig = Object.assign(
38
37
  {},
39
38
  this.jumpConfig,
40
39
  filterUrlQueryData(routerInfo?.params || {}),
41
40
  )
42
41
  this.logPageId = pageId
43
42
  }
44
43
 
45
44
  reportInfoPv(
46
45
  pageId = LogPageIdInfo.APP,
47
46
  opt: {
48
47
  pageParam?: any
49
48
  } = {},
50
49
  ) {
51
50
  const { pageParam, ...otherOpts } = opt
52
51
  const pageParamStr =
53
52
  typeof pageParam === 'object' ? JSON.stringify(pageParam) : pageParam
54
53
  this.logPageParamStr = pageParamStr
55
54
  ? pageParamStr
56
55
  : JSON.stringify(this.jumpConfig)
57
56
  return reportPV({
58
57
  pageId,
59
58
  pageParam: this.logPageParamStr,
60
59
  ...otherOpts,
61
60
  })
62
61
  }
63
62
 
64
63
  jdJumpToProduct(skuIds, logEventInfo) {
65
64
  skuIds = skuIds.toString().trim()
66
65
  const getSkuId = skuIds.indexOf(',') !== -1 ? skuIds.split(',')[0] : skuIds
67
66
  const { jingxiSdx, ...otherLogInfo } = logEventInfo
68
67
  if(jingxiSdx){
69
68
  this.jdNavigateToNative(
70
69
  `${this.jumpWebUrl.detail}${getSkuId}.html?sdx=${jingxiSdx}`,
71
70
  otherLogInfo,
72
71
  )
73
72
  }else {
74
73
  this.jdNavigateToNative(
75
74
  `${this.jumpWebUrl.detail}${getSkuId}.html`,
76
75
  logEventInfo,
77
76
  )
78
77
  }
79
78
  }
80
79
 
81
80
  jdJumpSkuInfoToProduct(skuInfo: any = {}, logEventInfo) {
82
81
  const getSkuId = skuInfo?.skuId;
83
82
  this.jdJumpToProduct(getSkuId, logEventInfo)
84
83
  }
85
84
 
86
85
  jdJumpToRankList(contentId: string | number, rankType = 10, logEventInfo) {
87
86
  const rankUrl = `${this.jumpWebUrl.rank}?contentId=${contentId}&sku=&rankType=${rankType}&fromName=dcpws&hideAd=1`
88
87
  this.jdNavigateToNative(rankUrl, {
89
88
  contentId,
90
89
  ...logEventInfo,
91
90
  })
92
91
  }
93
92
 
94
93
  jdJumpToShopCategory(shopInfo) {
95
94
  this.jdNavigateToNative(
96
95
  `${this.jumpWebUrl.shopHome}?${objectToUrlEncode(
97
96
  this.getShopIdOrVenderIdParams(shopInfo),
98
97
  )}&tabActive=classify`,
99
98
  {
100
99
  ...shopInfo,
101
100
  },
102
101
  )
103
102
  }
104
103
 
105
104
  jdJumpToShopHome(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
106
105
  const getInfo = Object.assign(
107
106
  {},
108
107
  {
109
108
  shopId: global.info.queryInfo.shopId,
110
109
  venderId: global.info.queryInfo.venderId,
111
110
  },
112
111
  shopInfo,
113
112
  )
114
113
  this.jdNavigateToNative(
115
114
  `${this.jumpWebUrl.mshop}?${objectToUrlEncode(
116
115
  this.getShopIdOrVenderIdParams(getInfo),
117
116
  )}`,
118
117
  {
119
118
  ...getInfo,
120
119
  },
121
120
  )
122
121
  }
123
122
 
124
123
  jdJumpToShopLight(shopInfo) {
125
124
  this.jdNavigateToNative(
126
125
  `${this.jumpWebUrl.shopLight}?${objectToUrlEncode(
127
126
  this.getShopIdOrVenderIdParams(shopInfo),
128
127
  )}`,
129
128
  {
130
129
  ...shopInfo,
131
130
  },
132
131
  )
133
132
  }
134
133
 
135
134
  jdJumpToShopMember(shopInfo) {
136
135
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
137
136
  const memberHomeUrl = window?.shopGlobalSwitch?.openNewMemberEntry === 'true' ? this.jumpWebUrl.memberHome : this.jumpWebUrl.shopMember
138
137
  this.jdJumpToWeb(
139
138
  `${memberHomeUrl}?${objectToUrlEncode(
140
139
  getShopInfo,
141
140
  )}&venderType=1&channel=406`,
142
141
  shopInfo,
143
142
  )
144
143
  }
145
144
 
146
145
  jdJumpToShopMemberCard(shopInfo) {
147
146
  const { logEventInfo } = shopInfo
148
147
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
149
148
  this.jdJumpToWeb(
150
149
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(getShopInfo)}`,
151
150
  logEventInfo,
152
151
  )
153
152
  }
154
153
 
155
154
  jdJumpToTotalPromotion(shopInfo) {
156
155
  const { url, logEventInfo } = shopInfo
157
156
  if (this.isOpenJdAppUrl(url)) {
158
157
  const getOpenAppParams: any = this.jdOpenAppParams(url)
159
158
  if (getOpenAppParams) {
160
159
  if (getOpenAppParams?.activityId) {
161
160
  this.jdJumpToWeb(
162
161
  `${this.jumpWebUrl.totalPromotion}?activity_id=${getOpenAppParams?.activityId}`,
163
162
  shopInfo,
164
163
  )
165
164
  }
166
165
  }
167
166
  } else {
168
167
  this.jdJumpToWeb(url, logEventInfo)
169
168
  }
170
169
  }
171
170
 
172
171
  jdJumpToDongDongChat(paramInfo) {
173
172
  const getInfo = Object.assign(
174
173
  {},
175
174
  {
176
175
  venderId: global.info.queryInfo.venderId,
177
176
  },
178
177
  paramInfo,
179
178
  )
180
179
  const { venderId = '1', entry = 'm_shop', ...otherInfo } = getInfo
181
180
  const dongdongUrl = `${this.jumpWebUrl.dongDongChat}?venderId=${venderId}&entry=${entry}&sceneval=2`
182
181
  this.jdJumpToWeb(dongdongUrl, otherInfo)
183
182
  }
184
183
 
185
184
  jdJumpToShopDetail(shopInfo) {
186
185
  const getInfo = Object.assign(
187
186
  {},
188
187
  {
189
188
  shopId: global.info.queryInfo.shopId,
190
189
  venderId: global.info.queryInfo.venderId,
191
190
  },
192
191
  shopInfo,
193
192
  )
194
193
  const getShopInfo = this.getShopIdOrVenderIdParams(getInfo)
195
194
  this.jdJumpToWeb(
196
195
  `${this.jumpWebUrl.shopIntroduce}?${objectToUrlEncode(getShopInfo)}`,
197
196
  getInfo,
198
197
  )
199
198
  }
200
199
 
201
200
  jdJumpToShopSearch(shopInfo) {
202
201
  const getInfo = Object.assign(
203
202
  {},
204
203
  {
205
204
  shopId: global.info.queryInfo.shopId,
206
205
  venderId: global.info.queryInfo.venderId,
207
206
  },
208
207
  shopInfo,
209
208
  )
210
209
  const { shopId, categoryId, keyword, pageId, description, shopName, keyWord, seller_actId, seller_actType} =
211
210
  getInfo
212
211
  const cateId = categoryId ? `&cateId=${typeof categoryId === 'string' ? categoryId?.trim() : categoryId}` : ''
213
212
  const addKeyWord = keyword || keyWord ? `&keyword=${keyword || keyWord}` : ''
214
213
  const addPageId = pageId ? `&pageId=${pageId}` : ''
215
214
  const searchDes = description ? `&description=${description}` : ''
216
215
  const shopNameDes = shopName ? `&shopName=${shopName}` : ''
217
216
  const searchType = categoryId ? 5 : keyword || keyWord ? 4 : 3
218
217
  const activityId = seller_actId ? `&activityId=${seller_actId}` : ''
219
218
  const activityType = seller_actType ? `&activityType=${seller_actType}` : ''
220
219
  this.jdJumpToWeb(
221
220
  `${this.jumpWebUrl.shopSearch}?shopId=${shopId}&searchType=${searchType}${cateId}${addKeyWord}${addPageId}${searchDes}${shopNameDes}${activityId}${activityType}`,
222
221
  getInfo,
223
222
  )
224
223
  }
225
224
 
226
225
  jdJumpToWeb(
227
226
  url,
228
227
  logEventInfo,
229
228
  successBack?: Function | undefined,
230
229
  failBack?: Function | undefined,
231
230
  ) {
232
231
  console.log('web.base.ts - jdJumpToWeb')
233
232
  this.jdNavigateToNative(
234
233
  url,
235
234
  {
236
235
  ...logEventInfo,
237
236
  },
238
237
  successBack,
239
238
  failBack,
240
239
  )
241
240
  }
242
241
 
243
242
  jdJumpToWebInner(url, logEventInfo) {
244
243
  this.jdJumpToWeb(url, logEventInfo)
245
244
  }
246
245
 
247
246
  jdJumpToLive(liveInfo, logEventInfo = {}) {
248
247
  if (liveInfo?.liveId) {
249
248
  this.jdJumpToWeb(
250
249
  `${this.jumpWebUrl.mLive}/${liveInfo?.liveId}?origin=30`,
251
250
  logEventInfo,
252
251
  )
253
252
  }else if (isJdAndHarmonyDevice) {
254
253
  const getShopLiveParams = this.jdOpenAppParams(liveInfo)
255
254
  console.log('getShopLiveParams=====', getShopLiveParams)
256
255
  if (typeof getShopLiveParams === 'object') {
257
256
  this.jdNavigateToNativeOpenApp({
258
257
  ...getShopLiveParams,
259
258
  logEventInfo,
260
259
  })
261
260
  }
262
261
  }
263
262
  }
264
263
 
265
264
  jdJumpToShopActivity(shopInfo) {
266
265
  const { configDataValue, logEventInfo, projectId } = shopInfo
267
266
  if (projectId && configDataValue) {
268
267
  this.jdJumpToWeb(
269
268
  `${this.jumpWebUrl.shopSecondActivity}${configDataValue.data}.html`,
270
269
  logEventInfo,
271
270
  )
272
271
  }
273
272
  }
274
273
 
275
274
  jdJumpToActivityPlace(spUrl, logEventInfo) {
276
275
  this.jdNavigateToNative(spUrl, logEventInfo)
277
276
  }
278
277
 
279
278
  jdJumpConfigUrl(detail, logEventInfo = {}) {
280
279
  const { configDataType, configDataValue } = detail
281
280
  console.log(
282
281
  'jdJumpConfigUrl web.base configDataType:',
283
282
  configDataType,
284
283
  configDataValue,
285
284
  )
286
285
  switch (configDataType) {
287
286
  case LinkConfigType.CONFIG_TYPE_SKU_LIST:
288
287
  if(logEventInfo?.jsonParam?.logBaseInfo?.mInfo){
289
288
  logEventInfo.jsonParam.logBaseInfo.mInfo.skuid = configDataValue.skuIds
290
289
  }
291
290
  this.jdJumpToProduct(configDataValue.skuIds, logEventInfo)
292
291
  break
293
292
  case LinkConfigType.CONFIG_TYPE_COUPON_LIST:
294
293
  this.jdJumpToWeb(
295
294
  `${this.jumpWebUrl.shopCoupon}?couponType=1&shopId=${global.info.queryInfo.shopId}&venderId=${global.info.queryInfo.venderId}`,
296
295
  {},
297
296
  )
298
297
  break
299
298
  case LinkConfigType.CONFIG_TYPE_CATEGORY:
300
299
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
301
300
  const getShopSearchParams = this.jdOpenAppParams(
302
301
  configDataValue.clickUrl,
303
302
  )
304
303
  getShopSearchParams &&
305
304
  this.jdJumpToShopSearch(
306
305
  Object.assign({}, getShopSearchParams, {
307
306
  logEventInfo,
308
307
  }),
309
308
  )
310
309
  } else {
311
310
  this.jdJumpToShopSearch(
312
311
  configDataValue['cid']
313
312
  ? Object.assign(
314
313
  {},
315
314
  {
316
315
  shopId: global.info.queryInfo.shopId,
317
316
  categoryId: configDataValue.cid,
318
317
  ...configDataValue,
319
318
  logEventInfo,
320
319
  },
321
320
  )
322
321
  : {
323
322
  shopId: global.info.queryInfo.shopId,
324
323
  logEventInfo,
325
324
  },
326
325
  )
327
326
  }
328
327
  break
329
328
  case LinkConfigType.CONFIG_TYPE_CATEGORY_PAGE:
330
329
  this.jdJumpToShopCategory({
331
330
  ...configDataValue,
332
331
  logEventInfo,
333
332
  })
334
333
  break
335
334
  case LinkConfigType.CONFIG_TYPE_MEMBER:
336
335
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
337
336
  const getShopMemberParams = this.jdOpenAppParams(
338
337
  configDataValue.clickUrl,
339
338
  )
340
339
  getShopMemberParams &&
341
340
  this.jdJumpToShopMember(
342
341
  Object.assign({}, getShopMemberParams, {
343
342
  logEventInfo,
344
343
  }),
345
344
  )
346
345
  } else {
347
346
  this.jdJumpToShopMember({
348
347
  shopId: global.info.queryInfo.shopId,
349
348
  venderId: configDataValue.shopDetail,
350
349
  logEventInfo,
351
350
  })
352
351
  }
353
352
  break
354
353
  case LinkConfigType.CONFIG_TYPE_SHOP_ACTIVITY:
355
354
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
356
355
  const getShopActivityParams = this.jdOpenAppParams(
357
356
  configDataValue.clickUrl,
358
357
  )
359
358
  if (
360
359
  getShopActivityParams &&
361
360
  getShopActivityParams['des'] == 'jshopActivity'
362
361
  ) {
363
362
  this.jdJumpToShopActivity({
364
363
  projectId: configDataValue['projectId'],
365
364
  configDataValue,
366
365
  logEventInfo,
367
366
  })
368
367
  }
369
368
  } else if (configDataValue['projectId']) {
370
369
  this.jdJumpToShopActivity({
371
370
  projectId: configDataValue['projectId'],
372
371
  configDataValue,
373
372
  logEventInfo,
374
373
  })
375
374
  }
376
375
  break
377
376
  case LinkConfigType.CONFIG_TYPE_CUSTOM_LINK:
378
377
  case LinkConfigType.CONFIG_TYPE_FINANCE_COUPON:
379
378
  const _url = configDataValue.linkUrl
380
379
  const isProductM = /item\.m\.jd\.com/.test(_url)
381
380
  const isProductPC = /item\.jd\.com/.test(_url)
382
381
  if (
383
382
  _url.indexOf('to=') === -1 &&
384
383
  _url.indexOf(`${domain.mshop.replace(/https?:/, '')}/?shopId=`) !== -1
385
384
  ) {
386
385
  const _shopId = _url.match(/\d+/g)[0]
387
386
  this.jdJumpToShopHome({
388
387
  shopId: `${_shopId}`,
389
388
  logEventInfo,
390
389
  })
391
390
  } else if (this.isOpenJdAppUrl(_url)) {
392
391
  const getOpenAppParams: any = this.jdOpenAppParams(_url)
393
392
  if (getOpenAppParams) {
394
393
  if (getOpenAppParams.jumpTab == 'allProduct') {
395
394
  this.jdJumpToTabAllProduct(
396
395
  global.info.queryInfo.shopId || getOpenAppParams?.shopId,
397
396
  global.info.queryInfo.venderId || getOpenAppParams?.venderId,
398
397
  )
399
398
  } else if (
400
399
  getOpenAppParams.des == 'productList' &&
401
400
  getOpenAppParams.from == 'couponBatch'
402
401
  ) {
403
402
  this.jdJumpToCouponSearchProductList(getOpenAppParams?.couponId)
404
403
  } else if (getOpenAppParams.des == 'vapp') {
405
404
  this.jdJumpToWeb(
406
405
  `https://conecli.com/apps/mpshare/index.html?category=${
407
406
  getOpenAppParams.category
408
407
  }&des=${getOpenAppParams.des}&vapptype=${
409
408
  getOpenAppParams.vapptype
410
409
  }&appId=${getOpenAppParams.appId}&path=${
411
410
  getOpenAppParams.path
412
411
  }&param=${encodeURI(JSON.stringify(getOpenAppParams.param))}`,
413
412
  logEventInfo,
414
413
  )
415
414
  } else {
416
415
  this.jdNavigateToNative(
417
416
  '',
418
417
  Object.assign({}, getOpenAppParams, {
419
418
  logEventInfo,
420
419
  }),
421
420
  )
422
421
  }
423
422
  }
424
423
  } else if (isProductM || isProductPC) {
425
424
  const skuid = _url.match(/\d+/g)[0]
426
425
  if (skuid) {
427
426
  this.jdJumpToProduct(skuid, logEventInfo)
428
427
  }
429
428
  } else {
430
429
  this.jdJumpToWeb(_url, logEventInfo)
431
430
  }
432
431
  break
433
432
  case LinkConfigType.CONFIG_TYPE_JSHOP_DETAIL:
434
433
  this.jdJumpToShopDetail({
435
434
  venderId: global.info.queryInfo.venderId,
436
435
  shopId: global.info.queryInfo.shopId,
437
436
  logEventInfo,
438
437
  })
439
438
  break
440
439
  case LinkConfigType.CONFIG_TYPE_SHOP_HOME:
441
440
  this.jdJumpToShopHome({
442
441
  ...configDataValue,
443
442
  logEventInfo,
444
443
  })
445
444
  break
446
445
  case LinkConfigType.CONFIG_TYPE_ANCHOR_POINT:
447
446
  break
448
447
  case LinkConfigType.CONFIG_TYPE_SHOPPING_GUIDE:
449
448
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
450
449
  const getShoppingGuideParams = this.jdOpenAppParams(
451
450
  configDataValue.clickUrl,
452
451
  )
453
452
  getShoppingGuideParams &&
454
453
  this.jdJumpToShopActivity(
455
454
  Object.assign({}, getShoppingGuideParams, {
456
455
  logEventInfo,
457
456
  }),
458
457
  )
459
458
  }
460
459
  break
461
460
  case LinkConfigType.CONFIG_TYPE_MINI_PROGRAM: {
462
461
  const linkUrl = decodeURIComponent(configDataValue?.linkUrl || '')
463
462
  const search = linkUrl.match(/\?.+/)
464
463
  if (search) {
465
464
  const miniQueryData: JumpEventReportInterFace.LinkMiniParams =
466
465
  parseQueryUrlString(linkUrl)
467
466
  try {
468
467
  miniQueryData.param = JSON.parse(<string>miniQueryData?.param)
469
468
  } catch (e) {
470
469
  console.warn('解析小程序 param 错误:', miniQueryData.param)
471
470
  }
472
471
  this.jdJumpToMiniProgram(miniQueryData)
473
472
  } else {
474
473
  console.warn('小程序地址错误:', linkUrl)
475
474
  }
476
475
  break
477
476
  }
478
477
  case LinkConfigType.CONFIG_TYPE_SHOP_SEARCH: {
479
478
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
480
479
  const getShopSearchParams = this.jdOpenAppParams(
481
480
  configDataValue.clickUrl,
482
481
  )
483
482
  console.log(
484
483
  'web base 获取店铺结果落地页链接解析后的参数结果',
485
484
  getShopSearchParams,
486
485
  )
487
486
  getShopSearchParams &&
488
487
  this.jdJumpToShopSearch(
489
488
  Object.assign({}, getShopSearchParams, {
490
489
  logEventInfo,
491
490
  }),
492
491
  )
493
492
  } else {
494
493
  this.jdJumpToWeb(configDataValue.clickUrl, logEventInfo)
495
494
  }
496
495
  break
497
496
  }
498
497
  default:
499
498
  }
500
499
  }
501
500
 
502
501
  jdJumpToTabAllProduct(shopId, venderId, logEventInfo = {}) {
503
502
  console.log('web.base.ts - jdJumpToTabAllProduct')
504
503
  if(typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId
505
504
  if(typeof venderId === 'undefined') venderId = global.info.queryInfo.venderId
506
505
  this.jdJumpToWeb(
507
506
  `${this.jumpWebUrl.shopHome}?${objectToUrlEncode({
508
507
  shopId,
509
508
  venderId,
510
509
  tabActive: 'home-product'
511
510
  })}`,
512
511
  logEventInfo,
513
512
  )
514
513
  }
515
514
 
516
515
  jdJumpToTabAllProductInner(shopId, venderId, logEventInfo = {}) {
517
516
  if(typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId
518
517
  if(typeof venderId === 'undefined') venderId = global.info.queryInfo.venderId
519
518
  this.jdJumpToTabAllProduct(shopId, venderId, logEventInfo)
520
519
  }
521
520
 
522
521
  jdJumpToTopTabBase(type, shopInfo = {}) {
523
522
  const getInfo = Object.assign(
524
523
  {},
525
524
  {
526
525
  shopId: global.info.queryInfo.shopId,
527
526
  venderId: global.info.queryInfo.venderId,
528
527
  },
529
528
  shopInfo,
530
529
  )
531
530
  this.jdJumpToWeb(
532
531
  `${this.jumpWebUrl.shopHome}?${objectToUrlEncode(
533
532
  this.getShopIdOrVenderIdParams(getInfo),
534
533
  )}&tabActive=${type}`,
535
534
  getInfo,
536
535
  )
537
536
  }
538
537
 
539
538
  jdJumpToTabNew(shopInfo = {}) {
540
539
  console.log('上新tab')
541
540
  this.jdJumpToTopTabBase(
542
541
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_NEW_PRODUCT],
543
542
  shopInfo,
544
543
  )
545
544
  }
546
545
 
547
546
  jdJumpToTabNewInner(shopInfo = {}) {
548
547
  this.jdJumpToTabNew(shopInfo)
549
548
  }
550
549
 
551
550
  jdJumpToTabRank(shopInfo = {}) {
552
551
  console.log('榜单tab')
553
552
  this.jdJumpToTopTabBase(
554
553
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_RANK],
555
554
  shopInfo,
556
555
  )
557
556
  }
558
557
  jdJumpToTabRankInner(shopInfo = {}) {
559
558
  this.jdJumpToTabRank(shopInfo)
560
559
  }
561
560
  jdJumpToTabBuyerShow(shopInfo = {}) {
562
561
  console.log('买家秀tab')
563
562
  this.jdJumpToTopTabBase(
564
563
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_BUYER_SHOW],
565
564
  shopInfo,
566
565
  )
567
566
  }
568
567
  jdJumpToTabBuyerShowInner(shopInfo = {}) {
569
568
  this.jdJumpToTabBuyerShow(shopInfo)
570
569
  }
571
570
  jdJumpToTabActivity(shopInfo = {}) {
572
571
  console.log('活动tab')
573
572
  this.jdJumpToTopTabBase(
574
573
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_ACTIVITY],
575
574
  shopInfo,
576
575
  )
577
576
  }
578
577
  jdJumpToTabActivityInner(shopInfo = {}) {
579
578
  this.jdJumpToTabActivity(shopInfo)
580
579
  }
581
580
  jdJumpToTabSecKill(shopInfo = {}) {
582
581
  console.log('秒杀tab')
583
582
  this.jdJumpToTopTabBase(
584
583
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_SECKILL],
585
584
  shopInfo,
586
585
  )
587
586
  }
588
587
  jdJumpToTabSecKillInner(shopInfo = {}) {
589
588
  this.jdJumpToTabSecKill(shopInfo)
590
589
  }
591
590
 
592
591
  jdJumpToBottomTabBase(type, shopInfo = {}) {
593
592
  this.jdJumpToTopTabBase(type, shopInfo)
594
593
  }
595
594
  jdJumpToBottomTabProduct(shopInfo = {}) {
596
595
  this.jdJumpToBottomTabBase(
597
596
  SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.PRODUCT],
598
597
  shopInfo,
599
598
  )
600
599
  }
601
600
  jdJumpToBottomTabCategory(shopInfo = {}) {
602
601
  this.jdJumpToBottomTabBase(
603
602
  SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.CLASSIFY],
604
603
  shopInfo,
605
604
  )
606
605
  }
607
606
  jdJumpToBottomTabFind(shopInfo = {}) {
608
607
  console.log('发现tab')
609
608
  }
610
609
  jdJumpToBottomTabBrandMember(shopInfo = {}) {
611
610
  const getInfo = Object.assign(
612
611
  {},
613
612
  {
614
613
  shopId: global.info.queryInfo.shopId,
615
614
  venderId: global.info.queryInfo.venderId,
616
615
  },
617
616
  shopInfo,
618
617
  )
619
618
  this.jdJumpToWeb(
620
619
  `${this.jumpWebUrl.memberHome}?${objectToUrlEncode(
621
620
  this.getShopIdOrVenderIdParams(getInfo),
622
621
  )}`,
623
622
  getInfo,
624
623
  )
625
624
  }
626
625
  jdJumpToBottomTabBrandMemberInner(shopInfo = {}) {
627
626
  this.jdJumpToBottomTabBrandMember(shopInfo)
628
627
  }
629
628
 
630
629
  jdJumpToCouponSearchProductList(couponId, logEventInfo = {}) {
631
630
  this.jdJumpToWeb(
632
631
  `${this.jumpWebUrl.couponSearch}?couponbatch=${couponId}&sceneval=2`,
633
632
  logEventInfo,
634
633
  )
635
634
  }
636
635
 
637
636
  jdNavigateToNative(
638
637
  url: string,
639
638
  params: {
640
639
  logEventInfo?: object
641
640
  } = {},
642
641
  successBack?: Function | undefined,
643
642
  failBack?: Function | undefined,
644
643
  ) {
645
644
  const { logEventInfo } = params
646
645
  const getEparam = logEventInfo || params
647
646
  console.log(`url:::::::${url}`)
648
647
  global.info.pageInfo.dataType === BUSINESS_TYPE.ONLINE &&
649
648
  this.clickEventLog(getEparam)
650
649
  .then(() => {
651
650
  typeof successBack == 'function'
652
651
  ? successBack(url)
653
652
  : (window.location.href = url)
654
653
  })
655
654
  .catch(() => {
656
655
  typeof failBack == 'function' && failBack(url)
657
656
  })
658
657
  }
659
658
 
660
659
  jdNavigateToNativeOpenApp(
661
660
  params: {},
662
661
  url = 'openapp.jdmobile://virtual',
663
662
  successBack?: Function | null,
664
663
  failBack?: Function | null,
665
664
  ) {
666
665
  console.log('[降级H5] jdNavigateToNative web.jd:', params)
667
666
  const getResParams: JumpEventReportInterFace.JdMiniJumpParams =
668
667
  Object.assign(
669
668
  {},
670
669
  {
671
670
  sourceValue: 'sourceValue_jshopModuleWeb',
672
671
  sourceType: 'sourceType_jshopModuleWeb',
673
672
  param: {},
674
673
  },
675
674
  params,
676
675
  )
677
676
  const { logEventInfo, ...otherParams } = getResParams
678
677
  console.log(
679
678
  'jd web 获取open协议参数 jdNavigateToNative params: ',
680
679
  getResParams,
681
680
  )
682
681
  console.log('logEventInfo params: ', logEventInfo)
683
682
  global.info.pageInfo.dataType === BUSINESS_TYPE.ONLINE &&
684
683
  this.clickEventLog(logEventInfo || getResParams)
685
684
  .then(() => {
686
685
  if (typeof successBack == 'function') {
687
686
  successBack(getResParams)
688
687
  } else {
689
688
  try {
690
689
  const paramsStr = JSON.stringify(otherParams)
691
690
  console.log('跳转web jd open协议', `${url}?params=${paramsStr}`)
692
691
  window.location.href = `${url}?params=${paramsStr}`
693
692
  } catch (e) {
694
693
  console.log('跳转异常', e)
695
694
  }
696
695
  }
697
696
  })
698
697
  .catch(() => {
699
698
  typeof failBack == 'function' && failBack(getResParams)
700
699
  })
701
700
  }
702
701
 
703
702
  clickEventLog(
704
703
  opts: JumpEventReportInterFace.OptEventLogParams = {},
705
704
  reportKey = 'click',
706
705
  ) {
707
706
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts
708
707
  ;/TerminatorNew_/.test(`${eventId}`) &&
709
708
  console.log(`当前h5的楼层模块eventId为====${eventId}`)
710
709
  if (eventId && jsonParam) {
711
710
  const { etModelInfo, logBaseInfo } = jsonParam
712
711
  let getJsonParam = {}
713
712
  if (etModelInfo && logBaseInfo) {
714
713
  getJsonParam = logBaseInfo
715
714
  } else {
716
715
  if (Array.isArray(jsonParam)){
717
716
  getJsonParam = jsonParam
718
717
  } else {
719
718
  getJsonParam = Object.assign(
720
719
  {},
721
720
  {
722
721
  shopid: global.info.queryInfo?.shopId,
723
722
  },
724
723
  jsonParam,
725
724
  )
726
725
  }
727
726
  }
728
727
  if(reportKey === 'exposure' && /^TerminatorNew/.test(eventId) && !Array.isArray(getJsonParam)){
729
728
  getJsonParam = [getJsonParam]
730
729
  }
731
730
  const webLogParams = {
732
731
  eid: eventId,
733
732
  elevel: eventLevel,
734
733
  jsonParam: JSON.stringify(getJsonParam),
735
734
  etModel: JSON.stringify(etModelInfo || {}),
736
735
  pageId: this.logPageId,
737
736
  pageParam: this.logPageParamStr,
738
737
  ...otherParams,
739
738
  }
740
739
  return /click|exposure/.test(reportKey)
741
740
  ? reportClick(webLogParams)
742
741
  : reportToCart(opts, webLogParams)
743
742
  } else {
744
743
  console.log('暂无埋点参数eventId和jsonParam')
745
744
  return Promise.resolve(false)
746
745
  }
747
746
  }
748
747
 
749
748
  exposureEventLog(opts) {
750
749
  return global.info.pageInfo.dataType === BUSINESS_TYPE.ONLINE
751
750
  ? this.clickEventLog(
752
751
  {
753
752
  ...opts,
754
753
  exposureState: true,
755
754
  },
756
755
  'exposure',
757
756
  )
758
757
  : Promise.resolve(false)
759
758
  }
759
+ import global from '../common';
760
760
  BUSINESS_TYPE,
761
761
  SHOP_MENU_ID_TYPE,
762
762
  SHOP_MENU_ID_NAME,
763
763
  SECTION_HOME_TAB_TYPE,
764
764
  SECTION_HOME_TAB_NAME_TYPE,
765
765
  objectToUrlEncode,
766
766
  parseQueryUrlString,
767
767
  filterUrlQueryData,
768
768
  isJdAndHarmonyDevice,
769
769
  routerInfo: {
770
770
  params: {},
771
771
  },
772
772
  nativeEvent: null,
773
773
  jumpConfig: {
774
774
  venderId: null,
775
775
  shopId: null,
776
776
  sourceValue: '',
777
777
  sourceType: 'M-H5',
778
778
  activityType: 'shopx',
779
779
  moduleId: 'none',
780
780
  entrance: 'none',
781
781
  },
782
782
  logPageParamStr: '',
783
783
  public logPageId: string;
784
784
  public jumpConfig: JumpEventReportInterFace.JumpH5ReportConfig;
785
785
  getConfig(opt) {
786
786
  return Object.assign(this, {}, defaultConfig, opt);
787
787
  }
788
788
  updateInfo(routerInfo, logPname = LogPnameInfo.HOME, pageId = LogPageIdInfo.APP) {
789
789
  this.routerInfo = routerInfo;
790
790
  this.logPname = logPname;
791
791
  this.jumpConfig = Object.assign(
792
792
  {},
793
793
  this.jumpConfig,
794
794
  filterUrlQueryData(routerInfo?.params || {}),
795
795
  );
796
796
  this.logPageId = pageId;
797
797
  }
798
798
 
799
799
  reportInfoPv(
800
800
  pageId = LogPageIdInfo.APP,
801
801
  opt: {
802
802
  pageParam?: any;
803
803
  } = {},
804
804
  ) {
805
805
  const { pageParam, ...otherOpts } = opt;
806
806
  const pageParamStr = typeof pageParam === 'object' ? JSON.stringify(pageParam) : pageParam;
807
807
  this.logPageParamStr = pageParamStr ? pageParamStr : JSON.stringify(this.jumpConfig);
808
808
  return reportPV({
809
809
  pageId,
810
810
  pageParam: this.logPageParamStr,
811
811
  ...otherOpts,
812
812
  });
813
813
  }
814
814
 
815
815
  jdJumpToProduct(skuIds, logEventInfo) {
816
816
  skuIds = skuIds.toString().trim();
817
817
  const getSkuId = skuIds.indexOf(',') !== -1 ? skuIds.split(',')[0] : skuIds;
818
818
  const { jingxiSdx, ...otherLogInfo } = logEventInfo;
819
819
  if (jingxiSdx) {
820
820
  this.jdNavigateToNative(
821
821
  `${this.jumpWebUrl.detail}${getSkuId}.html?sdx=${jingxiSdx}`,
822
822
  otherLogInfo,
823
823
  );
824
824
  } else {
825
825
  this.jdNavigateToNative(`${this.jumpWebUrl.detail}${getSkuId}.html`, logEventInfo);
826
826
  }
827
827
  }
828
828
 
829
829
  jdJumpSkuInfoToProduct(skuInfo: any = {}, logEventInfo) {
830
830
  const getSkuId = skuInfo?.skuId;
831
831
  this.jdJumpToProduct(getSkuId, logEventInfo);
832
832
  }
833
833
 
834
834
  jdJumpToRankList(contentId: string | number, rankType = 10, logEventInfo) {
835
835
  const rankUrl = `${this.jumpWebUrl.rank}?contentId=${contentId}&sku=&rankType=${rankType}&fromName=dcpws&hideAd=1`;
836
836
  this.jdNavigateToNative(rankUrl, {
837
837
  contentId,
838
838
  ...logEventInfo,
839
839
  });
840
840
  }
841
841
 
842
842
  jdJumpToShopCategory(shopInfo) {
843
843
  this.jdNavigateToNative(
844
844
  `${this.jumpWebUrl.shopHome}?${objectToUrlEncode(
845
845
  this.getShopIdOrVenderIdParams(shopInfo),
846
846
  )}&tabActive=classify`,
847
847
  {
848
848
  ...shopInfo,
849
849
  },
850
850
  );
851
851
  }
852
852
 
853
853
  jdJumpToShopHome(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
854
854
  const getInfo = Object.assign(
855
855
  {},
856
856
  {
857
857
  shopId: global.info.queryInfo.shopId,
858
858
  venderId: global.info.queryInfo.venderId,
859
859
  },
860
860
  shopInfo,
861
861
  );
862
862
  this.jdNavigateToNative(
863
863
  `${this.jumpWebUrl.mshop}?${objectToUrlEncode(this.getShopIdOrVenderIdParams(getInfo))}`,
864
864
  {
865
865
  ...getInfo,
866
866
  },
867
867
  );
868
868
  }
869
869
 
870
870
  jdJumpToShopLight(shopInfo) {
871
871
  this.jdNavigateToNative(
872
872
  `${this.jumpWebUrl.shopLight}?${objectToUrlEncode(this.getShopIdOrVenderIdParams(shopInfo))}`,
873
873
  {
874
874
  ...shopInfo,
875
875
  },
876
876
  );
877
877
  }
878
878
 
879
879
  jdJumpToShopMember(shopInfo) {
880
880
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo);
881
881
  const memberHomeUrl =
882
882
  window?.shopGlobalSwitch?.openNewMemberEntry === 'true'
883
883
  ? this.jumpWebUrl.memberHome
884
884
  : this.jumpWebUrl.shopMember;
885
885
  this.jdJumpToWeb(
886
886
  `${memberHomeUrl}?${objectToUrlEncode(getShopInfo)}&venderType=1&channel=406`,
887
887
  shopInfo,
888
888
  );
889
889
  }
890
890
 
891
891
  jdJumpToShopMemberCard(shopInfo) {
892
892
  const { logEventInfo } = shopInfo;
893
893
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo);
894
894
  this.jdJumpToWeb(
895
895
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(getShopInfo)}`,
896
896
  logEventInfo,
897
897
  );
898
898
  }
899
899
 
900
900
  jdJumpToTotalPromotion(shopInfo) {
901
901
  const { url, logEventInfo } = shopInfo;
902
902
  if (this.isOpenJdAppUrl(url)) {
903
903
  const getOpenAppParams: any = this.jdOpenAppParams(url);
904
904
  if (getOpenAppParams) {
905
905
  if (getOpenAppParams?.activityId) {
906
906
  this.jdJumpToWeb(
907
907
  `${this.jumpWebUrl.totalPromotion}?activity_id=${getOpenAppParams?.activityId}`,
908
908
  shopInfo,
909
909
  );
910
910
  }
911
911
  }
912
912
  } else {
913
913
  this.jdJumpToWeb(url, logEventInfo);
914
914
  }
915
915
  }
916
916
 
917
917
  jdJumpToDongDongChat(paramInfo) {
918
918
  const getInfo = Object.assign(
919
919
  {},
920
920
  {
921
921
  venderId: global.info.queryInfo.venderId,
922
922
  },
923
923
  paramInfo,
924
924
  );
925
925
  const { venderId = '1', entry = 'm_shop', ...otherInfo } = getInfo;
926
926
  const dongdongUrl = `${this.jumpWebUrl.dongDongChat}?venderId=${venderId}&entry=${entry}&sceneval=2`;
927
927
  this.jdJumpToWeb(dongdongUrl, otherInfo);
928
928
  }
929
929
 
930
930
  jdJumpToShopDetail(shopInfo) {
931
931
  const getInfo = Object.assign(
932
932
  {},
933
933
  {
934
934
  shopId: global.info.queryInfo.shopId,
935
935
  venderId: global.info.queryInfo.venderId,
936
936
  },
937
937
  shopInfo,
938
938
  );
939
939
  const getShopInfo = this.getShopIdOrVenderIdParams(getInfo);
940
940
  this.jdJumpToWeb(`${this.jumpWebUrl.shopIntroduce}?${objectToUrlEncode(getShopInfo)}`, getInfo);
941
941
  }
942
942
 
943
943
  jdJumpToShopSearch(shopInfo) {
944
944
  const getInfo = Object.assign(
945
945
  {},
946
946
  {
947
947
  shopId: global.info.queryInfo.shopId,
948
948
  venderId: global.info.queryInfo.venderId,
949
949
  },
950
950
  shopInfo,
951
951
  );
952
952
  const {
953
953
  shopId,
954
954
  categoryId,
955
955
  keyword,
956
956
  pageId,
957
957
  description,
958
958
  shopName,
959
959
  keyWord,
960
960
  seller_actId,
961
961
  seller_actType,
962
962
  } = getInfo;
963
963
  const cateId = categoryId
964
964
  ? `&cateId=${typeof categoryId === 'string' ? categoryId?.trim() : categoryId}`
965
965
  : '';
966
966
  const addKeyWord = keyword || keyWord ? `&keyword=${keyword || keyWord}` : '';
967
967
  const addPageId = pageId ? `&pageId=${pageId}` : '';
968
968
  const searchDes = description ? `&description=${description}` : '';
969
969
  const shopNameDes = shopName ? `&shopName=${shopName}` : '';
970
970
  const searchType = categoryId ? 5 : keyword || keyWord ? 4 : 3;
971
971
  const activityId = seller_actId ? `&activityId=${seller_actId}` : '';
972
972
  const activityType = seller_actType ? `&activityType=${seller_actType}` : '';
973
973
  this.jdJumpToWeb(
974
974
  `${this.jumpWebUrl.shopSearch}?shopId=${shopId}&searchType=${searchType}${cateId}${addKeyWord}${addPageId}${searchDes}${shopNameDes}${activityId}${activityType}`,
975
975
  getInfo,
976
976
  );
977
977
  }
978
978
 
979
979
  jdJumpToWeb(
980
980
  url,
981
981
  logEventInfo,
982
982
  successBack?: Function | undefined,
983
983
  failBack?: Function | undefined,
984
984
  ) {
985
985
  console.log('web.base.ts - jdJumpToWeb');
986
986
  this.jdNavigateToNative(
987
987
  url,
988
988
  {
989
989
  ...logEventInfo,
990
990
  },
991
991
  successBack,
992
992
  failBack,
993
993
  );
994
994
  }
995
995
 
996
996
  jdJumpToWebInner(url, logEventInfo) {
997
997
  this.jdJumpToWeb(url, logEventInfo);
998
998
  }
999
999
 
1000
1000
  jdJumpToLive(liveInfo, logEventInfo = {}) {
1001
1001
  if (liveInfo?.liveId) {
1002
1002
  this.jdJumpToWeb(`${this.jumpWebUrl.mLive}/${liveInfo?.liveId}?origin=30`, logEventInfo);
1003
1003
  } else if (isJdAndHarmonyDevice) {
1004
1004
  const getShopLiveParams = this.jdOpenAppParams(liveInfo);
1005
1005
  console.log('getShopLiveParams=====', getShopLiveParams);
1006
1006
  if (typeof getShopLiveParams === 'object') {
1007
1007
  this.jdNavigateToNativeOpenApp({
1008
1008
  ...getShopLiveParams,
1009
1009
  logEventInfo,
1010
1010
  });
1011
1011
  }
1012
1012
  }
1013
1013
  }
1014
1014
 
1015
1015
  jdJumpToShopActivity(shopInfo) {
1016
1016
  const { configDataValue, logEventInfo, projectId } = shopInfo;
1017
1017
  if (projectId && configDataValue) {
1018
1018
  this.jdJumpToWeb(
1019
1019
  `${this.jumpWebUrl.shopSecondActivity}${configDataValue.data}.html`,
1020
1020
  logEventInfo,
1021
1021
  );
1022
1022
  }
1023
1023
  }
1024
1024
 
1025
1025
  jdJumpToActivityPlace(spUrl, logEventInfo) {
1026
1026
  this.jdNavigateToNative(spUrl, logEventInfo);
1027
1027
  }
1028
1028
 
1029
1029
  jdJumpConfigUrl(detail, logEventInfo = {}) {
1030
1030
  const { configDataType, configDataValue } = detail;
1031
1031
  console.log('jdJumpConfigUrl web.base configDataType:', configDataType, configDataValue);
1032
1032
  switch (configDataType) {
1033
1033
  case LinkConfigType.CONFIG_TYPE_SKU_LIST:
1034
1034
  if (logEventInfo?.jsonParam?.logBaseInfo?.mInfo) {
1035
1035
  logEventInfo.jsonParam.logBaseInfo.mInfo.skuid = configDataValue.skuIds;
1036
1036
  }
1037
1037
  this.jdJumpToProduct(configDataValue.skuIds, logEventInfo);
1038
1038
  break;
1039
1039
  case LinkConfigType.CONFIG_TYPE_COUPON_LIST:
1040
1040
  this.jdJumpToWeb(
1041
1041
  `${this.jumpWebUrl.shopCoupon}?couponType=1&shopId=${global.info.queryInfo.shopId}&venderId=${global.info.queryInfo.venderId}`,
1042
1042
  {},
1043
1043
  );
1044
1044
  break;
1045
1045
  case LinkConfigType.CONFIG_TYPE_CATEGORY:
1046
1046
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1047
1047
  const getShopSearchParams = this.jdOpenAppParams(configDataValue.clickUrl);
1048
1048
  getShopSearchParams &&
1049
1049
  this.jdJumpToShopSearch(
1050
1050
  Object.assign({}, getShopSearchParams, {
1051
1051
  logEventInfo,
1052
1052
  }),
1053
1053
  );
1054
1054
  } else {
1055
1055
  this.jdJumpToShopSearch(
1056
1056
  configDataValue['cid']
1057
1057
  ? Object.assign(
1058
1058
  {},
1059
1059
  {
1060
1060
  shopId: global.info.queryInfo.shopId,
1061
1061
  categoryId: configDataValue.cid,
1062
1062
  ...configDataValue,
1063
1063
  logEventInfo,
1064
1064
  },
1065
1065
  )
1066
1066
  : {
1067
1067
  shopId: global.info.queryInfo.shopId,
1068
1068
  logEventInfo,
1069
1069
  },
1070
1070
  );
1071
1071
  }
1072
1072
  break;
1073
1073
  case LinkConfigType.CONFIG_TYPE_CATEGORY_PAGE:
1074
1074
  this.jdJumpToShopCategory({
1075
1075
  ...configDataValue,
1076
1076
  logEventInfo,
1077
1077
  });
1078
1078
  break;
1079
1079
  case LinkConfigType.CONFIG_TYPE_MEMBER:
1080
1080
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1081
1081
  const getShopMemberParams = this.jdOpenAppParams(configDataValue.clickUrl);
1082
1082
  getShopMemberParams &&
1083
1083
  this.jdJumpToShopMember(
1084
1084
  Object.assign({}, getShopMemberParams, {
1085
1085
  logEventInfo,
1086
1086
  }),
1087
1087
  );
1088
1088
  } else {
1089
1089
  this.jdJumpToShopMember({
1090
1090
  shopId: global.info.queryInfo.shopId,
1091
1091
  venderId: configDataValue.shopDetail,
1092
1092
  logEventInfo,
1093
1093
  });
1094
1094
  }
1095
1095
  break;
1096
1096
  case LinkConfigType.CONFIG_TYPE_SHOP_ACTIVITY:
1097
1097
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1098
1098
  const getShopActivityParams = this.jdOpenAppParams(configDataValue.clickUrl);
1099
1099
  if (getShopActivityParams && getShopActivityParams['des'] == 'jshopActivity') {
1100
1100
  this.jdJumpToShopActivity({
1101
1101
  projectId: configDataValue['projectId'],
1102
1102
  configDataValue,
1103
1103
  logEventInfo,
1104
1104
  });
1105
1105
  }
1106
1106
  } else if (configDataValue['projectId']) {
1107
1107
  this.jdJumpToShopActivity({
1108
1108
  projectId: configDataValue['projectId'],
1109
1109
  configDataValue,
1110
1110
  logEventInfo,
1111
1111
  });
1112
1112
  }
1113
1113
  break;
1114
1114
  case LinkConfigType.CONFIG_TYPE_CUSTOM_LINK:
1115
1115
  case LinkConfigType.CONFIG_TYPE_FINANCE_COUPON:
1116
1116
  const _url = configDataValue.linkUrl;
1117
1117
  const isProductM = /item\.m\.jd\.com/.test(_url);
1118
1118
  const isProductPC = /item\.jd\.com/.test(_url);
1119
1119
  if (
1120
1120
  _url.indexOf('to=') === -1 &&
1121
1121
  _url.indexOf(`${domain.mshop.replace(/https?:/, '')}/?shopId=`) !== -1
1122
1122
  ) {
1123
1123
  const _shopId = _url.match(/\d+/g)[0];
1124
1124
  this.jdJumpToShopHome({
1125
1125
  shopId: `${_shopId}`,
1126
1126
  logEventInfo,
1127
1127
  });
1128
1128
  } else if (this.isOpenJdAppUrl(_url)) {
1129
1129
  const getOpenAppParams: any = this.jdOpenAppParams(_url);
1130
1130
  if (getOpenAppParams) {
1131
1131
  if (getOpenAppParams.jumpTab == 'allProduct') {
1132
1132
  this.jdJumpToTabAllProduct(
1133
1133
  global.info.queryInfo.shopId || getOpenAppParams?.shopId,
1134
1134
  global.info.queryInfo.venderId || getOpenAppParams?.venderId,
1135
1135
  );
1136
1136
  } else if (
1137
1137
  getOpenAppParams.des == 'productList' &&
1138
1138
  getOpenAppParams.from == 'couponBatch'
1139
1139
  ) {
1140
1140
  this.jdJumpToCouponSearchProductList(getOpenAppParams?.couponId);
1141
1141
  } else if (getOpenAppParams.des == 'vapp') {
1142
1142
  this.jdJumpToWeb(
1143
1143
  `https://conecli.com/apps/mpshare/index.html?category=${
1144
1144
  getOpenAppParams.category
1145
1145
  }&des=${getOpenAppParams.des}&vapptype=${
1146
1146
  getOpenAppParams.vapptype
1147
1147
  }&appId=${getOpenAppParams.appId}&path=${
1148
1148
  getOpenAppParams.path
1149
1149
  }&param=${encodeURI(JSON.stringify(getOpenAppParams.param))}`,
1150
1150
  logEventInfo,
1151
1151
  );
1152
1152
  } else {
1153
1153
  this.jdNavigateToNative(
1154
1154
  '',
1155
1155
  Object.assign({}, getOpenAppParams, {
1156
1156
  logEventInfo,
1157
1157
  }),
1158
1158
  );
1159
1159
  }
1160
1160
  }
1161
1161
  } else if (isProductM || isProductPC) {
1162
1162
  const skuid = _url.match(/\d+/g)[0];
1163
1163
  if (skuid) {
1164
1164
  this.jdJumpToProduct(skuid, logEventInfo);
1165
1165
  }
1166
1166
  } else {
1167
1167
  this.jdJumpToWeb(_url, logEventInfo);
1168
1168
  }
1169
1169
  break;
1170
1170
  case LinkConfigType.CONFIG_TYPE_JSHOP_DETAIL:
1171
1171
  this.jdJumpToShopDetail({
1172
1172
  venderId: global.info.queryInfo.venderId,
1173
1173
  shopId: global.info.queryInfo.shopId,
1174
1174
  logEventInfo,
1175
1175
  });
1176
1176
  break;
1177
1177
  case LinkConfigType.CONFIG_TYPE_SHOP_HOME:
1178
1178
  this.jdJumpToShopHome({
1179
1179
  ...configDataValue,
1180
1180
  logEventInfo,
1181
1181
  });
1182
1182
  break;
1183
1183
  case LinkConfigType.CONFIG_TYPE_ANCHOR_POINT:
1184
1184
  break;
1185
1185
  case LinkConfigType.CONFIG_TYPE_SHOPPING_GUIDE:
1186
1186
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1187
1187
  const getShoppingGuideParams = this.jdOpenAppParams(configDataValue.clickUrl);
1188
1188
  getShoppingGuideParams &&
1189
1189
  this.jdJumpToShopActivity(
1190
1190
  Object.assign({}, getShoppingGuideParams, {
1191
1191
  logEventInfo,
1192
1192
  }),
1193
1193
  );
1194
1194
  }
1195
1195
  break;
1196
1196
  case LinkConfigType.CONFIG_TYPE_MINI_PROGRAM: {
1197
1197
  const linkUrl = decodeURIComponent(configDataValue?.linkUrl || '');
1198
1198
  const search = linkUrl.match(/\?.+/);
1199
1199
  if (search) {
1200
1200
  const miniQueryData: JumpEventReportInterFace.LinkMiniParams =
1201
1201
  parseQueryUrlString(linkUrl);
1202
1202
  try {
1203
1203
  miniQueryData.param = JSON.parse(<string>miniQueryData?.param);
1204
1204
  } catch (e) {
1205
1205
  console.warn('解析小程序 param 错误:', miniQueryData.param);
1206
1206
  }
1207
1207
  this.jdJumpToMiniProgram(miniQueryData);
1208
1208
  } else {
1209
1209
  console.warn('小程序地址错误:', linkUrl);
1210
1210
  }
1211
1211
  break;
1212
1212
  }
1213
1213
  case LinkConfigType.CONFIG_TYPE_SHOP_SEARCH: {
1214
1214
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1215
1215
  const getShopSearchParams = this.jdOpenAppParams(configDataValue.clickUrl);
1216
1216
  console.log('web base 获取店铺结果落地页链接解析后的参数结果', getShopSearchParams);
1217
1217
  getShopSearchParams &&
1218
1218
  this.jdJumpToShopSearch(
1219
1219
  Object.assign({}, getShopSearchParams, {
1220
1220
  logEventInfo,
1221
1221
  }),
1222
1222
  );
1223
1223
  } else {
1224
1224
  this.jdJumpToWeb(configDataValue.clickUrl, logEventInfo);
1225
1225
  }
1226
1226
  break;
1227
1227
  }
1228
1228
  default:
1229
1229
  }
1230
1230
  }
1231
1231
 
1232
1232
  jdJumpToTabAllProduct(shopId, venderId, logEventInfo = {}) {
1233
1233
  console.log('web.base.ts - jdJumpToTabAllProduct');
1234
1234
  if (typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId;
1235
1235
  if (typeof venderId === 'undefined') venderId = global.info.queryInfo.venderId;
1236
1236
  this.jdJumpToWeb(
1237
1237
  `${this.jumpWebUrl.shopHome}?${objectToUrlEncode({
1238
1238
  shopId,
1239
1239
  venderId,
1240
1240
  tabActive: 'home-product',
1241
1241
  })}`,
1242
1242
  logEventInfo,
1243
1243
  );
1244
1244
  }
1245
1245
 
1246
1246
  jdJumpToTabAllProductInner(shopId, venderId, logEventInfo = {}) {
1247
1247
  if (typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId;
1248
1248
  if (typeof venderId === 'undefined') venderId = global.info.queryInfo.venderId;
1249
1249
  this.jdJumpToTabAllProduct(shopId, venderId, logEventInfo);
1250
1250
  }
1251
1251
 
1252
1252
  jdJumpToTopTabBase(type, shopInfo = {}) {
1253
1253
  const getInfo = Object.assign(
1254
1254
  {},
1255
1255
  {
1256
1256
  shopId: global.info.queryInfo.shopId,
1257
1257
  venderId: global.info.queryInfo.venderId,
1258
1258
  },
1259
1259
  shopInfo,
1260
1260
  );
1261
1261
  this.jdJumpToWeb(
1262
1262
  `${this.jumpWebUrl.shopHome}?${objectToUrlEncode(
1263
1263
  this.getShopIdOrVenderIdParams(getInfo),
1264
1264
  )}&tabActive=${type}`,
1265
1265
  getInfo,
1266
1266
  );
1267
1267
  }
1268
1268
 
1269
1269
  jdJumpToTabNew(shopInfo = {}) {
1270
1270
  console.log('上新tab');
1271
1271
  this.jdJumpToTopTabBase(
1272
1272
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_NEW_PRODUCT],
1273
1273
  shopInfo,
1274
1274
  );
1275
1275
  }
1276
1276
 
1277
1277
  jdJumpToTabNewInner(shopInfo = {}) {
1278
1278
  this.jdJumpToTabNew(shopInfo);
1279
1279
  }
1280
1280
 
1281
1281
  jdJumpToTabRank(shopInfo = {}) {
1282
1282
  console.log('榜单tab');
1283
1283
  this.jdJumpToTopTabBase(SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_RANK], shopInfo);
1284
1284
  }
1285
1285
  jdJumpToTabRankInner(shopInfo = {}) {
1286
1286
  this.jdJumpToTabRank(shopInfo);
1287
1287
  }
1288
1288
  jdJumpToTabBuyerShow(shopInfo = {}) {
1289
1289
  console.log('买家秀tab');
1290
1290
  this.jdJumpToTopTabBase(
1291
1291
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_BUYER_SHOW],
1292
1292
  shopInfo,
1293
1293
  );
1294
1294
  }
1295
1295
  jdJumpToTabBuyerShowInner(shopInfo = {}) {
1296
1296
  this.jdJumpToTabBuyerShow(shopInfo);
1297
1297
  }
1298
1298
  jdJumpToTabActivity(shopInfo = {}) {
1299
1299
  console.log('活动tab');
1300
1300
  this.jdJumpToTopTabBase(
1301
1301
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_ACTIVITY],
1302
1302
  shopInfo,
1303
1303
  );
1304
1304
  }
1305
1305
  jdJumpToTabActivityInner(shopInfo = {}) {
1306
1306
  this.jdJumpToTabActivity(shopInfo);
1307
1307
  }
1308
1308
  jdJumpToTabSecKill(shopInfo = {}) {
1309
1309
  console.log('秒杀tab');
1310
1310
  this.jdJumpToTopTabBase(
1311
1311
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_SECKILL],
1312
1312
  shopInfo,
1313
1313
  );
1314
1314
  }
1315
1315
  jdJumpToTabSecKillInner(shopInfo = {}) {
1316
1316
  this.jdJumpToTabSecKill(shopInfo);
1317
1317
  }
1318
1318
 
1319
1319
  jdJumpToBottomTabBase(type, shopInfo = {}) {
1320
1320
  this.jdJumpToTopTabBase(type, shopInfo);
1321
1321
  }
1322
1322
  jdJumpToBottomTabProduct(shopInfo = {}) {
1323
1323
  this.jdJumpToBottomTabBase(SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.PRODUCT], shopInfo);
1324
1324
  }
1325
1325
  jdJumpToBottomTabCategory(shopInfo = {}) {
1326
1326
  this.jdJumpToBottomTabBase(SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.CLASSIFY], shopInfo);
1327
1327
  }
1328
1328
  jdJumpToBottomTabFind(shopInfo = {}) {
1329
1329
  console.log('发现tab');
1330
1330
  }
1331
1331
  jdJumpToBottomTabBrandMember(shopInfo = {}) {
1332
1332
  const getInfo = Object.assign(
1333
1333
  {},
1334
1334
  {
1335
1335
  shopId: global.info.queryInfo.shopId,
1336
1336
  venderId: global.info.queryInfo.venderId,
1337
1337
  },
1338
1338
  shopInfo,
1339
1339
  );
1340
1340
  this.jdJumpToWeb(
1341
1341
  `${this.jumpWebUrl.memberHome}?${objectToUrlEncode(this.getShopIdOrVenderIdParams(getInfo))}`,
1342
1342
  getInfo,
1343
1343
  );
1344
1344
  }
1345
1345
  jdJumpToBottomTabBrandMemberInner(shopInfo = {}) {
1346
1346
  this.jdJumpToBottomTabBrandMember(shopInfo);
1347
1347
  }
1348
1348
 
1349
1349
  jdJumpToCouponSearchProductList(couponId, logEventInfo = {}) {
1350
1350
  this.jdJumpToWeb(
1351
1351
  `${this.jumpWebUrl.couponSearch}?couponbatch=${couponId}&sceneval=2`,
1352
1352
  logEventInfo,
1353
1353
  );
1354
1354
  }
1355
1355
 
1356
1356
  jdNavigateToNative(
1357
1357
  url: string,
1358
1358
  params: {
1359
1359
  logEventInfo?: object;
1360
1360
  } = {},
1361
1361
  successBack?: Function | undefined,
1362
1362
  failBack?: Function | undefined,
1363
1363
  ) {
1364
1364
  const { logEventInfo } = params;
1365
1365
  const getEparam = logEventInfo || params;
1366
1366
  console.log(`url:::::::${url}`);
1367
1367
  global.info.pageInfo.dataType === BUSINESS_TYPE.ONLINE &&
1368
1368
  this.clickEventLog(getEparam)
1369
1369
  .then(() => {
1370
1370
  typeof successBack === 'function' ? successBack(url) : (window.location.href = url);
1371
1371
  })
1372
1372
  .catch(() => {
1373
1373
  typeof failBack === 'function' && failBack(url);
1374
1374
  });
1375
1375
  }
1376
1376
 
1377
1377
  jdNavigateToNativeOpenApp(
1378
1378
  params: {},
1379
1379
  url = 'openapp.jdmobile://virtual',
1380
1380
  successBack?: Function | null,
1381
1381
  failBack?: Function | null,
1382
1382
  ) {
1383
1383
  console.log('[降级H5] jdNavigateToNative web.jd:', params);
1384
1384
  const getResParams: JumpEventReportInterFace.JdMiniJumpParams = Object.assign(
1385
1385
  {},
1386
1386
  {
1387
1387
  sourceValue: 'sourceValue_jshopModuleWeb',
1388
1388
  sourceType: 'sourceType_jshopModuleWeb',
1389
1389
  param: {},
1390
1390
  },
1391
1391
  params,
1392
1392
  );
1393
1393
  const { logEventInfo, ...otherParams } = getResParams;
1394
1394
  console.log('jd web 获取open协议参数 jdNavigateToNative params: ', getResParams);
1395
1395
  console.log('logEventInfo params: ', logEventInfo);
1396
1396
  global.info.pageInfo.dataType === BUSINESS_TYPE.ONLINE &&
1397
1397
  this.clickEventLog(logEventInfo || getResParams)
1398
1398
  .then(() => {
1399
1399
  if (typeof successBack === 'function') {
1400
1400
  successBack(getResParams);
1401
1401
  } else {
1402
1402
  try {
1403
1403
  const paramsStr = JSON.stringify(otherParams);
1404
1404
  console.log('跳转web jd open协议', `${url}?params=${paramsStr}`);
1405
1405
  window.location.href = `${url}?params=${paramsStr}`;
1406
1406
  } catch (e) {
1407
1407
  console.log('跳转异常', e);
1408
1408
  }
1409
1409
  }
1410
1410
  })
1411
1411
  .catch(() => {
1412
1412
  typeof failBack === 'function' && failBack(getResParams);
1413
1413
  });
1414
1414
  }
1415
1415
 
1416
1416
  clickEventLog(opts: JumpEventReportInterFace.OptEventLogParams = {}, reportKey = 'click') {
1417
1417
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts;
1418
1418
  /TerminatorNew_/.test(`${eventId}`) && console.log(`当前h5的楼层模块eventId为====${eventId}`);
1419
1419
  if (eventId && jsonParam) {
1420
1420
  const { etModelInfo, logBaseInfo } = jsonParam;
1421
1421
  let getJsonParam = {};
1422
1422
  if (etModelInfo && logBaseInfo) {
1423
1423
  getJsonParam = logBaseInfo;
1424
1424
  } else {
1425
1425
  if (Array.isArray(jsonParam)) {
1426
1426
  getJsonParam = jsonParam;
1427
1427
  } else {
1428
1428
  getJsonParam = Object.assign(
1429
1429
  {},
1430
1430
  {
1431
1431
  shopid: global.info.queryInfo?.shopId,
1432
1432
  },
1433
1433
  jsonParam,
1434
1434
  );
1435
1435
  }
1436
1436
  }
1437
1437
  if (
1438
1438
  reportKey === 'exposure' &&
1439
1439
  /^TerminatorNew/.test(eventId) &&
1440
1440
  !Array.isArray(getJsonParam)
1441
1441
  ) {
1442
1442
  getJsonParam = [getJsonParam];
1443
1443
  }
1444
1444
  const webLogParams = {
1445
1445
  isExpo: reportKey === 'exposure',
1446
1446
  eid: eventId,
1447
1447
  elevel: eventLevel,
1448
1448
  jsonParam: JSON.stringify(getJsonParam),
1449
1449
  etModel: JSON.stringify(etModelInfo || {}),
1450
1450
  pageId: this.logPageId,
1451
1451
  pageParam: this.logPageParamStr,
1452
1452
  ...otherParams,
1453
1453
  };
1454
1454
  return /click|exposure/.test(reportKey)
1455
1455
  ? reportClick(webLogParams)
1456
1456
  : reportToCart(opts, webLogParams);
1457
1457
  } else {
1458
1458
  console.log('暂无埋点参数eventId和jsonParam');
1459
1459
  return Promise.resolve(false);
1460
1460
  }
1461
1461
  }
1462
1462
 
1463
1463
  exposureEventLog(opts) {
1464
1464
  return global.info.pageInfo.dataType === BUSINESS_TYPE.ONLINE
1465
1465
  ? this.clickEventLog(
1466
1466
  {
1467
1467
  ...opts,
1468
1468
  exposureState: true,
1469
1469
  },
1470
1470
  'exposure',
1471
1471
  )
1472
1472
  : Promise.resolve(false);
1473
1473
  }