@conecli/cone-render 0.9.1-shop2.16 → 0.9.1-shop2.18

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