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

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