@conecli/cone-render 0.10.1-shop3.1 → 0.10.1-shop3.11

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