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