@conecli/cone-render 0.10.1-beta.6 → 0.10.1-beta.8

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