@conecli/cone-render 0.10.1-beta.5 → 0.10.1-beta.7

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 (57) 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/base/CountDown/index.module.scss +49 -44
  11. package/dist/components/base/CountDown/index.tsx +1 -1
  12. package/dist/components/base/CustomVideo/common.ts +1 -0
  13. package/dist/components/base/CustomVideo/index.tsx +1 -1
  14. package/dist/components/base/LazyLoadImage/index.h5.module.scss +11 -6
  15. package/dist/components/base/LazyLoadImage/index.h5.tsx +1 -1
  16. package/dist/components/base/Price/Base/index.tsx +1 -1
  17. package/dist/components/base/Price/Double/index.module.scss +8 -0
  18. package/dist/components/base/Price/Double/index.tsx +1 -1
  19. package/dist/components/floorItem.tsx +1 -1
  20. package/dist/components/isv/Floor/index.tsx +1 -1
  21. package/dist/interface/component.ts +1 -1
  22. package/dist/interface/jumpEventReport.ts +1 -1
  23. package/dist/interface/service.ts +1 -1
  24. package/dist/jumpEventReport/base.ts +1 -1
  25. package/dist/jumpEventReport/index.jd.ts +1 -1
  26. package/dist/jumpEventReport/index.weapp.ts +1 -1
  27. package/dist/jumpEventReport/jdJumpJdApp.ts +1 -1
  28. package/dist/jumpEventReport/jumpUrlConfig/base.ts +1 -1
  29. package/dist/jumpEventReport/logEventConfig.ts +1 -1
  30. package/dist/jumpEventReport/web.base.ts +1 -1
  31. package/dist/jumpEventReport/web.jd.ts +1 -1
  32. package/dist/jumpEventReport/web.jdb.ts +1 -1
  33. package/dist/jumpEventReport/web.jdjch.ts +1 -1
  34. package/dist/jumpEventReport/web.jxwxapp.ts +1 -1
  35. package/dist/jumpEventReport/web.pc.ts +1 -1
  36. package/dist/jumpEventReport/web.tjapp.ts +1 -1
  37. package/dist/jumpEventReport/web.tjm.ts +1 -1
  38. package/dist/jumpEventReport/web.wxapp.ts +1 -1
  39. package/dist/modules/ContainerFloorList/index.h5.tsx +1 -1
  40. package/dist/modules/ContainerFloorList/index.tsx +1 -1
  41. package/dist/open/api/util.ts +1 -1
  42. package/dist/sass/base.scss +142 -141
  43. package/dist/service/fetchGateway.ts +1 -1
  44. package/dist/service/http/colorSign.ts +1 -1
  45. package/dist/service/http/h5Http.ts +1 -0
  46. package/dist/service/http/index.h5.ts +1 -0
  47. package/dist/service/requestServer.h5.ts +1 -0
  48. package/dist/service/requestServer.ts +1 -1
  49. package/dist/utils/connectNativeJsBridge.ts +1 -1
  50. package/dist/utils/connectNativeJsBridge.weapp.ts +1 -1
  51. package/dist/utils/h5Utils.ts +1 -1
  52. package/dist/utils/index.h5.ts +1 -1
  53. package/dist/utils/index.ts +1 -1
  54. package/dist/utils/index.weapp.ts +1 -1
  55. package/dist/utils/utils.ts +1 -1
  56. package/package.json +35 -29
  57. package/dist/utils/memberFormatUtils.js +0 -1
@@ -1 +1 @@
1
- import { JdJumpJdApp } from './jdJumpJdApp'
2
1
  reportClick,
3
2
  reportPV,
4
3
  reportToCart,
5
4
  routerInfo: {
6
5
  params: {},
7
6
  },
8
7
  nativeEvent: null,
9
8
  jumpConfig: {
10
9
  venderId: null,
11
10
  shopId: null,
12
11
  sourceValue: '',
13
12
  sourceType: 'App-H5',
14
13
  activityType: 'shopx',
15
14
  moduleId: 'none',
16
15
  entrance: 'none',
17
16
  },
18
17
  logPageParamStr: '',
19
18
  public logPageId: string
20
19
  public jumpConfig: JumpEventReportInterFace.JumpH5ReportConfig
21
20
  constructor(opt = {}) {
22
21
  super(opt)
23
22
  this.getConfig(opt)
24
23
  }
25
24
  getConfig(opt = {}) {
26
25
  return Object.assign(this, {}, defaultConfig, opt)
27
26
  }
28
27
  updateInfo(
29
28
  routerInfo,
30
29
  logPname = LogPnameInfo.HOME,
31
30
  pageId = LogPageIdInfo.APP,
32
31
  ) {
33
32
  this.logPageId = pageId
34
33
  this.routerInfo = routerInfo
35
34
  this.jumpConfig = Object.assign({}, this.jumpConfig, routerInfo.params)
36
35
  this.logPname = logPname
37
36
  }
38
37
  reportInfoPv(
39
38
  pageId = LogPageIdInfo.APP,
40
39
  opt: {
41
40
  pageParam?: any
42
41
  } = {},
43
42
  ) {
44
43
  const { pageParam } = opt
45
44
  this.logPageParamStr = pageParam
46
45
  ? pageParam
47
46
  : this.creatParamToLogStr(this.jumpConfig)
48
47
  .replace(/moduleId/, 'JumpmoduleID')
49
48
  .replace(/entrance/, 'Jumpentrance')
50
49
  reportPV({
51
50
  pageId,
52
51
  pageParam: this.logPageParamStr,
53
52
  ...opt,
54
53
  })
55
54
  }
56
55
 
57
56
  jdJumpToDongDongChatGroup(groupId, source = '4') {
58
57
  this.jdNavigateToNative({
59
58
  category: 'jump',
60
59
  des: 'dongdong_group_chat',
61
60
  source: source,
62
61
  groupId: `${groupId}`,
63
62
  })
64
63
  }
65
64
 
66
65
  jdJumpToWeb(
67
66
  url,
68
67
  logEventInfo,
69
68
  successBack?: Function | undefined,
70
69
  failBack?: Function | undefined,
71
70
  ) {
72
71
  console.log('jd web',this.isOpenJdAppUrl(url),url)
73
72
  if (this.isOpenJdAppUrl(url)) {
74
73
  const getOpenAppParams = this.jdOpenAppParams(url)
75
74
  console.log(
76
75
  'jd web 获取自定义openApp链接解析后的参数结果',
77
76
  getOpenAppParams,
78
77
  )
79
78
  if (getOpenAppParams) {
80
79
  this.jdNavigateToNative(
81
80
  Object.assign({}, getOpenAppParams, {
82
81
  logEventInfo,
83
82
  }),
84
83
  )
85
84
  }
86
85
  } else {
87
86
  super.jdJumpToWeb(
88
87
  url,
89
88
  {
90
89
  ...logEventInfo,
91
90
  },
92
91
  successBack,
93
92
  failBack,
94
93
  )
95
94
  }
96
95
  }
97
96
 
98
97
  jdJumpToWebInner(url, logEventInfo) {
99
98
  this.jdJumpToWeb(url, logEventInfo)
100
99
  }
101
100
 
102
101
  jdJumpConfigUrl(detail, logEventInfo = {}) {
103
102
  const { configDataType, configDataValue } = detail
104
103
  switch (configDataType) {
105
104
  case LinkConfigType.CONFIG_TYPE_CATEGORY_PAGE:
106
105
  this.jdJumpToShopCategory({
107
106
  ...configDataValue,
108
107
  logEventInfo,
109
108
  })
110
109
  break
111
110
  case LinkConfigType.CONFIG_TYPE_SKU_LIST:
112
111
  if(logEventInfo?.jsonParam?.logBaseInfo?.mInfo){
113
112
  logEventInfo.jsonParam.logBaseInfo.mInfo.skuid = configDataValue.skuIds
114
113
  }
115
114
  this.jdJumpToProduct(configDataValue.skuIds, logEventInfo)
116
115
  break
117
116
  case LinkConfigType.CONFIG_TYPE_COUPON_LIST:
118
117
  this.jdJumpToWeb(
119
118
  `${this.jumpWebUrl.shopCoupon}?couponType=1&shopId=${global.info.queryInfo.shopId}&venderId=${global.info.queryInfo.venderId}`,
120
119
  {},
121
120
  )
122
121
  break
123
122
  case LinkConfigType.CONFIG_TYPE_CATEGORY:
124
123
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
125
124
  const getShopSearchParams = this.jdOpenAppParams(
126
125
  configDataValue.clickUrl,
127
126
  )
128
127
  console.log(
129
128
  'jd web 获取店铺分类链接解析后的参数结果',
130
129
  getShopSearchParams,
131
130
  )
132
131
  getShopSearchParams &&
133
132
  this.jdJumpToShopSearch(
134
133
  Object.assign({}, getShopSearchParams, {
135
134
  logEventInfo,
136
135
  }),
137
136
  )
138
137
  } else {
139
138
  this.jdJumpToShopSearch(
140
139
  configDataValue['cid']
141
140
  ? Object.assign(
142
141
  {},
143
142
  {
144
143
  shopId: global.info.queryInfo.shopId,
145
144
  categoryId: configDataValue.cid,
146
145
  searchType: '5',
147
146
  logEventInfo,
148
147
  },
149
148
  )
150
149
  : {
151
150
  shopId: global.info.queryInfo.shopId,
152
151
  logEventInfo,
153
152
  },
154
153
  )
155
154
  }
156
155
  break
157
156
  case LinkConfigType.CONFIG_TYPE_MEMBER:
158
157
  if(isAppHomeForMarketPage){
159
158
  this.jdJumpToBottomTabBrandMember({
160
159
  logEventInfo
161
160
  })
162
161
  }else {
163
162
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
164
163
  const getShopMemberParams = this.jdOpenAppParams(
165
164
  configDataValue.clickUrl,
166
165
  )
167
166
  getShopMemberParams &&
168
167
  this.jdJumpToShopMember(
169
168
  Object.assign({}, getShopMemberParams, {
170
169
  logEventInfo,
171
170
  }),
172
171
  )
173
172
  } else {
174
173
  this.jdJumpToShopMember({
175
174
  shopId: global.info.queryInfo.shopId,
176
175
  venderId: configDataValue.shopDetail,
177
176
  logEventInfo,
178
177
  })
179
178
  }
180
179
  }
181
180
  break
182
181
  case LinkConfigType.CONFIG_TYPE_SHOP_ACTIVITY:
183
182
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
184
183
  const getShopActivityParams = this.jdOpenAppParams(
185
184
  configDataValue.clickUrl,
186
185
  )
187
186
  getShopActivityParams &&
188
187
  this.jdJumpToShopActivity(
189
188
  Object.assign({}, getShopActivityParams, {
190
189
  logEventInfo,
191
190
  }),
192
191
  )
193
192
  } else if (configDataValue['projectId']) {
194
193
  this.jdJumpToShopActivity({
195
194
  projectId: configDataValue['projectId'],
196
195
  configDataValue,
197
196
  logEventInfo,
198
197
  })
199
198
  }
200
199
  break
201
200
  case LinkConfigType.CONFIG_TYPE_CUSTOM_LINK:
202
201
  case LinkConfigType.CONFIG_TYPE_FINANCE_COUPON: {
203
202
  const _url = configDataValue.linkUrl
204
203
  if (
205
204
  _url.indexOf('to=') === -1 &&
206
205
  _url.indexOf(`${domain.mshop.replace(/https?:/, '')}/?shopId=`) !== -1
207
206
  ) {
208
207
  const _shopId = _url.match(/\d+/g)[0]
209
208
  this.jdJumpToShopHome({
210
209
  shopId: `${_shopId}`,
211
210
  logEventInfo,
212
211
  })
213
212
  } else if (this.isOpenJdAppUrl(_url)) {
214
213
  const getOpenAppParams = this.jdOpenAppParams(_url)
215
214
  console.log('jd web 获取自定义链接解析后的参数结果', getOpenAppParams)
216
215
  if (getOpenAppParams) {
217
216
  let _changeOpenAppParams = getOpenAppParams
218
217
  if(isAppHomeForMarketPage){
219
218
  const { operation, ...otherOpenAppParams } = getOpenAppParams
220
219
  if(operation && operation === 'jumpTabInner'){
221
220
  _changeOpenAppParams = otherOpenAppParams
222
221
  }
223
222
  }
224
223
  this.jdNavigateToNative(
225
224
  Object.assign({}, _changeOpenAppParams, {
226
225
  logEventInfo,
227
226
  }),
228
227
  )
229
228
  }
230
229
  } else {
231
230
  this.jdJumpToWeb(_url, logEventInfo)
232
231
  }
233
232
  break
234
233
  }
235
234
  case LinkConfigType.CONFIG_TYPE_JSHOP_DETAIL:
236
235
  this.jdJumpToShopDetail({
237
236
  venderId: global.info.queryInfo.venderId,
238
237
  shopId: global.info.queryInfo.shopId,
239
238
  logEventInfo,
240
239
  })
241
240
  break
242
241
  case LinkConfigType.CONFIG_TYPE_SHOP_HOME:
243
242
  this.jdJumpToShopHome({
244
243
  ...configDataValue,
245
244
  logEventInfo,
246
245
  })
247
246
  break
248
247
  case LinkConfigType.CONFIG_TYPE_ANCHOR_POINT:
249
248
  break
250
249
  case LinkConfigType.CONFIG_TYPE_SHOPPING_GUIDE:
251
250
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
252
251
  const getShoppingGuideParams = this.jdOpenAppParams(
253
252
  configDataValue.clickUrl,
254
253
  )
255
254
  getShoppingGuideParams &&
256
255
  this.jdJumpToShopActivity(
257
256
  Object.assign({}, getShoppingGuideParams, {
258
257
  logEventInfo,
259
258
  }),
260
259
  )
261
260
  }
262
261
  break
263
262
  case LinkConfigType.CONFIG_TYPE_MINI_PROGRAM: {
264
263
  const linkUrl = decodeURIComponent(configDataValue?.linkUrl || '')
265
264
  const search = linkUrl.match(/\?.+/)
266
265
  if (search) {
267
266
  const miniQueryData: JumpEventReportInterFace.LinkMiniParams =
268
267
  parseQueryUrlString(linkUrl)
269
268
  try {
270
269
  miniQueryData.param = JSON.parse(<string>miniQueryData?.param)
271
270
  } catch (e) {
272
271
  console.warn('解析小程序 param 错误:', miniQueryData.param)
273
272
  }
274
273
  this.jdJumpToMiniProgram(miniQueryData)
275
274
  } else {
276
275
  console.warn('小程序地址错误:', linkUrl)
277
276
  }
278
277
  break
279
278
  }
280
279
  case LinkConfigType.CONFIG_TYPE_SHOP_SEARCH: {
281
280
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
282
281
  const getShopSearchParams = this.jdOpenAppParams(
283
282
  configDataValue.clickUrl,
284
283
  )
285
284
  console.log(
286
285
  'jd web 获取店铺结果落地页链接解析后的参数结果',
287
286
  getShopSearchParams,
288
287
  )
289
288
  getShopSearchParams &&
290
289
  this.jdJumpToShopSearch(
291
290
  Object.assign({}, getShopSearchParams, {
292
291
  logEventInfo,
293
292
  }),
294
293
  )
295
294
  } else {
296
295
  this.jdJumpToWeb(configDataValue.clickUrl, logEventInfo)
297
296
  }
298
297
  break
299
298
  }
300
299
  default:
301
300
  }
302
301
  }
303
302
 
304
303
  jdNavigateToNative(
305
304
  params: {},
306
305
  url = 'openapp.jdmobile://virtual',
307
306
  successBack?: Function | null,
308
307
  failBack?: Function | null,
309
308
  ) {
310
309
  console.log('[降级H5] jdNavigateToNative web.jd:', params)
311
310
  const getResParams: JumpEventReportInterFace.JdMiniJumpParams =
312
311
  Object.assign(
313
312
  {},
314
313
  {
315
314
  sourceValue: 'sourceValue_jshopModuleWeb',
316
315
  sourceType: 'sourceType_jshopModuleWeb',
317
316
  param: {},
318
317
  },
319
318
  params,
320
319
  )
321
320
  const { logEventInfo, ...otherParams } = getResParams
322
321
  console.log(
323
322
  'jd web 获取open协议参数 jdNavigateToNative params: ',
324
323
  getResParams,
325
324
  )
326
325
  console.log('logEventInfo params: ', logEventInfo)
327
326
  global.info.pageInfo.dataType === BUSINESS_TYPE.ONLINE &&
328
327
  this.clickEventLog(logEventInfo || getResParams)
329
328
  .then(() => {
330
329
  if (typeof successBack == 'function') {
331
330
  successBack(getResParams)
332
331
  } else {
333
332
  try {
334
333
  const paramsStr = JSON.stringify(otherParams)
335
334
  console.log('跳转web jd open协议', `${url}?params=${paramsStr}`)
336
335
  window.location.href = `${url}?params=${paramsStr}`
337
336
  } catch (e) {
338
337
  console.log('跳转异常', e)
339
338
  }
340
339
  }
341
340
  })
342
341
  .catch(() => {
343
342
  typeof failBack == 'function' && failBack(getResParams)
344
343
  })
345
344
  }
346
345
 
347
346
  clickEventLog(
348
347
  opts: JumpEventReportInterFace.OptEventLogParams = {},
349
348
  reportKey = 'click',
350
349
  ) {
351
350
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts
352
351
  if (eventId && jsonParam) {
353
352
  const { etModelInfo, logBaseInfo } = jsonParam
354
353
  let getJsonParam = {}
355
354
  if (etModelInfo && logBaseInfo) {
356
355
  getJsonParam = logBaseInfo
357
356
  } else {
358
357
  if (Array.isArray(jsonParam)){
359
358
  getJsonParam = jsonParam
360
359
  } else {
361
360
  getJsonParam = Object.assign(
362
361
  {},
363
362
  {
364
363
  shopid: global.info.queryInfo?.shopId,
365
364
  },
366
365
  jsonParam,
367
366
  )
368
367
  }
369
368
  }
370
369
  if(reportKey === 'exposure' && /^TerminatorNew/.test(eventId) && !Array.isArray(getJsonParam)){
371
370
  getJsonParam = [getJsonParam]
372
371
  }
373
372
  const webLogParams = {
374
373
  eid: eventId,
375
374
  elevel: eventLevel,
376
375
  jsonParam: JSON.stringify(getJsonParam),
377
376
  etModel: JSON.stringify(etModelInfo || {}),
378
377
  pageId: this.logPageId,
379
378
  pageParam: this.logPageParamStr,
380
379
  ...otherParams,
381
380
  }
382
381
  return /click|exposure/.test(reportKey)
383
382
  ? reportClick(webLogParams)
384
383
  : reportToCart(opts,webLogParams)
385
384
  } else {
386
385
  console.log('暂无埋点参数eventId和eventParam')
387
386
  return Promise.resolve(false)
388
387
  }
389
388
  }
390
389
 
391
390
  exposureEventLog(opts) {
392
391
  return global.info.pageInfo.dataType === BUSINESS_TYPE.ONLINE
393
392
  ? this.clickEventLog(
394
393
  {
395
394
  ...opts,
396
395
  exposureState: true,
397
396
  },
398
397
  'exposure',
399
398
  )
400
399
  : Promise.resolve(false)
401
400
  }
401
+ import { JdJumpJdApp } from './jdJumpJdApp'
402
402
  reportClick,
403
403
  reportPV,
404
404
  reportToCart,
405
405
  routerInfo: {
406
406
  params: {},
407
407
  },
408
408
  nativeEvent: null,
409
409
  jumpConfig: {
410
410
  venderId: null,
411
411
  shopId: null,
412
412
  sourceValue: '',
413
413
  sourceType: 'App-H5',
414
414
  activityType: 'shopx',
415
415
  moduleId: 'none',
416
416
  entrance: 'none',
417
417
  },
418
418
  logPageParamStr: '',
419
419
  public logPageId: string
420
420
  public jumpConfig: JumpEventReportInterFace.JumpH5ReportConfig
421
421
  constructor(opt = {}) {
422
422
  super(opt)
423
423
  this.getConfig(opt)
424
424
  }
425
425
  getConfig(opt = {}) {
426
426
  return Object.assign(this, {}, defaultConfig, opt)
427
427
  }
428
428
  updateInfo(
429
429
  routerInfo,
430
430
  logPname = LogPnameInfo.HOME,
431
431
  pageId = LogPageIdInfo.APP,
432
432
  ) {
433
433
  this.logPageId = pageId
434
434
  this.routerInfo = routerInfo
435
435
  this.jumpConfig = Object.assign({}, this.jumpConfig, routerInfo.params)
436
436
  this.logPname = logPname
437
437
  }
438
438
  reportInfoPv(
439
439
  pageId = LogPageIdInfo.APP,
440
440
  opt: {
441
441
  pageParam?: any
442
442
  } = {},
443
443
  ) {
444
444
  const { pageParam } = opt
445
445
  this.logPageParamStr = pageParam
446
446
  ? pageParam
447
447
  : this.creatParamToLogStr(this.jumpConfig)
448
448
  .replace(/moduleId/, 'JumpmoduleID')
449
449
  .replace(/entrance/, 'Jumpentrance')
450
450
  reportPV({
451
451
  pageId,
452
452
  pageParam: this.logPageParamStr,
453
453
  ...opt,
454
454
  })
455
455
  }
456
456
 
457
457
  jdJumpToDongDongChatGroup(groupId, source = '4') {
458
458
  this.jdNavigateToNative({
459
459
  category: 'jump',
460
460
  des: 'dongdong_group_chat',
461
461
  source: source,
462
462
  groupId: `${groupId}`,
463
463
  })
464
464
  }
465
465
 
466
466
  jdJumpToWeb(
467
467
  url,
468
468
  logEventInfo,
469
469
  successBack?: Function | undefined,
470
470
  failBack?: Function | undefined,
471
471
  ) {
472
472
  console.log('jd web',this.isOpenJdAppUrl(url),url)
473
473
  if (this.isOpenJdAppUrl(url)) {
474
474
  const getOpenAppParams = this.jdOpenAppParams(url)
475
475
  console.log(
476
476
  'jd web 获取自定义openApp链接解析后的参数结果',
477
477
  getOpenAppParams,
478
478
  )
479
479
  if (getOpenAppParams) {
480
480
  this.jdNavigateToNative(
481
481
  Object.assign({}, getOpenAppParams, {
482
482
  logEventInfo,
483
483
  }),
484
484
  )
485
485
  }
486
486
  } else {
487
487
  let _getLastUrl = url
488
488
  if(/shop\.m\.jd\.com|pages\.jd\.com/.test(url)){
489
489
  _getLastUrl = !/jwebprog=0/.test(url) ? `${url}${url.indexOf("?") !== -1 ? '&jwebprog=0' : '?jwebprog=0'}` : url
490
490
  }
491
491
  super.jdJumpToWeb(
492
492
  _getLastUrl,
493
493
  {
494
494
  ...logEventInfo,
495
495
  },
496
496
  successBack,
497
497
  failBack,
498
498
  )
499
499
  }
500
500
  }
501
501
 
502
502
  jdJumpToWebInner(url, logEventInfo) {
503
503
  this.jdJumpToWeb(url, logEventInfo)
504
504
  }
505
505
 
506
506
  jdJumpConfigUrl(detail, logEventInfo = {}) {
507
507
  const { configDataType, configDataValue } = detail
508
508
  switch (configDataType) {
509
509
  case LinkConfigType.CONFIG_TYPE_CATEGORY_PAGE:
510
510
  this.jdJumpToShopCategory({
511
511
  ...configDataValue,
512
512
  logEventInfo,
513
513
  })
514
514
  break
515
515
  case LinkConfigType.CONFIG_TYPE_SKU_LIST:
516
516
  if(logEventInfo?.jsonParam?.logBaseInfo?.mInfo){
517
517
  logEventInfo.jsonParam.logBaseInfo.mInfo.skuid = configDataValue.skuIds
518
518
  }
519
519
  this.jdJumpToProduct(configDataValue.skuIds, logEventInfo)
520
520
  break
521
521
  case LinkConfigType.CONFIG_TYPE_COUPON_LIST:
522
522
  this.jdJumpToWeb(
523
523
  `${this.jumpWebUrl.shopCoupon}?couponType=1&shopId=${global.info.queryInfo.shopId}&venderId=${global.info.queryInfo.venderId}`,
524
524
  {},
525
525
  )
526
526
  break
527
527
  case LinkConfigType.CONFIG_TYPE_CATEGORY:
528
528
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
529
529
  const getShopSearchParams = this.jdOpenAppParams(
530
530
  configDataValue.clickUrl,
531
531
  )
532
532
  console.log(
533
533
  'jd web 获取店铺分类链接解析后的参数结果',
534
534
  getShopSearchParams,
535
535
  )
536
536
  getShopSearchParams &&
537
537
  this.jdJumpToShopSearch(
538
538
  Object.assign({}, getShopSearchParams, {
539
539
  logEventInfo,
540
540
  }),
541
541
  )
542
542
  } else {
543
543
  this.jdJumpToShopSearch(
544
544
  configDataValue['cid']
545
545
  ? Object.assign(
546
546
  {},
547
547
  {
548
548
  shopId: global.info.queryInfo.shopId,
549
549
  categoryId: configDataValue.cid,
550
550
  searchType: '5',
551
551
  logEventInfo,
552
552
  },
553
553
  )
554
554
  : {
555
555
  shopId: global.info.queryInfo.shopId,
556
556
  logEventInfo,
557
557
  },
558
558
  )
559
559
  }
560
560
  break
561
561
  case LinkConfigType.CONFIG_TYPE_MEMBER:
562
562
  if(isAppHomeForMarketPage){
563
563
  this.jdJumpToBottomTabBrandMember({
564
564
  logEventInfo
565
565
  })
566
566
  }else {
567
567
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
568
568
  const getShopMemberParams = this.jdOpenAppParams(
569
569
  configDataValue.clickUrl,
570
570
  )
571
571
  getShopMemberParams &&
572
572
  this.jdJumpToShopMember(
573
573
  Object.assign({}, getShopMemberParams, {
574
574
  logEventInfo,
575
575
  }),
576
576
  )
577
577
  } else {
578
578
  this.jdJumpToShopMember({
579
579
  shopId: global.info.queryInfo.shopId,
580
580
  venderId: configDataValue.shopDetail,
581
581
  logEventInfo,
582
582
  })
583
583
  }
584
584
  }
585
585
  break
586
586
  case LinkConfigType.CONFIG_TYPE_SHOP_ACTIVITY:
587
587
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
588
588
  const getShopActivityParams = this.jdOpenAppParams(
589
589
  configDataValue.clickUrl,
590
590
  )
591
591
  getShopActivityParams &&
592
592
  this.jdJumpToShopActivity(
593
593
  Object.assign({}, getShopActivityParams, {
594
594
  logEventInfo,
595
595
  }),
596
596
  )
597
597
  } else if (configDataValue['projectId']) {
598
598
  this.jdJumpToShopActivity({
599
599
  projectId: configDataValue['projectId'],
600
600
  configDataValue,
601
601
  logEventInfo,
602
602
  })
603
603
  }
604
604
  break
605
605
  case LinkConfigType.CONFIG_TYPE_CUSTOM_LINK:
606
606
  case LinkConfigType.CONFIG_TYPE_FINANCE_COUPON: {
607
607
  const _url = configDataValue.linkUrl
608
608
  if (
609
609
  _url.indexOf('to=') === -1 &&
610
610
  _url.indexOf(`${domain.mshop.replace(/https?:/, '')}/?shopId=`) !== -1
611
611
  ) {
612
612
  const _shopId = _url.match(/\d+/g)[0]
613
613
  this.jdJumpToShopHome({
614
614
  shopId: `${_shopId}`,
615
615
  logEventInfo,
616
616
  })
617
617
  } else if (this.isOpenJdAppUrl(_url)) {
618
618
  const getOpenAppParams = this.jdOpenAppParams(_url)
619
619
  console.log('jd web 获取自定义链接解析后的参数结果', getOpenAppParams)
620
620
  if (getOpenAppParams) {
621
621
  let _changeOpenAppParams = getOpenAppParams
622
622
  if(isAppHomeForMarketPage){
623
623
  const { operation, ...otherOpenAppParams } = getOpenAppParams
624
624
  if(operation && operation === 'jumpTabInner'){
625
625
  _changeOpenAppParams = otherOpenAppParams
626
626
  }
627
627
  }
628
628
  this.jdNavigateToNative(
629
629
  Object.assign({}, _changeOpenAppParams, {
630
630
  logEventInfo,
631
631
  }),
632
632
  )
633
633
  }
634
634
  } else {
635
635
  this.jdJumpToWeb(_url, logEventInfo)
636
636
  }
637
637
  break
638
638
  }
639
639
  case LinkConfigType.CONFIG_TYPE_JSHOP_DETAIL:
640
640
  this.jdJumpToShopDetail({
641
641
  venderId: global.info.queryInfo.venderId,
642
642
  shopId: global.info.queryInfo.shopId,
643
643
  logEventInfo,
644
644
  })
645
645
  break
646
646
  case LinkConfigType.CONFIG_TYPE_SHOP_HOME:
647
647
  this.jdJumpToShopHome({
648
648
  ...configDataValue,
649
649
  logEventInfo,
650
650
  })
651
651
  break
652
652
  case LinkConfigType.CONFIG_TYPE_ANCHOR_POINT:
653
653
  break
654
654
  case LinkConfigType.CONFIG_TYPE_SHOPPING_GUIDE:
655
655
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
656
656
  const getShoppingGuideParams = this.jdOpenAppParams(
657
657
  configDataValue.clickUrl,
658
658
  )
659
659
  getShoppingGuideParams &&
660
660
  this.jdJumpToShopActivity(
661
661
  Object.assign({}, getShoppingGuideParams, {
662
662
  logEventInfo,
663
663
  }),
664
664
  )
665
665
  }
666
666
  break
667
667
  case LinkConfigType.CONFIG_TYPE_MINI_PROGRAM: {
668
668
  const linkUrl = decodeURIComponent(configDataValue?.linkUrl || '')
669
669
  const search = linkUrl.match(/\?.+/)
670
670
  if (search) {
671
671
  const miniQueryData: JumpEventReportInterFace.LinkMiniParams =
672
672
  parseQueryUrlString(linkUrl)
673
673
  try {
674
674
  miniQueryData.param = JSON.parse(<string>miniQueryData?.param)
675
675
  } catch (e) {
676
676
  console.warn('解析小程序 param 错误:', miniQueryData.param)
677
677
  }
678
678
  this.jdJumpToMiniProgram(miniQueryData)
679
679
  } else {
680
680
  console.warn('小程序地址错误:', linkUrl)
681
681
  }
682
682
  break
683
683
  }
684
684
  case LinkConfigType.CONFIG_TYPE_SHOP_SEARCH: {
685
685
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
686
686
  const getShopSearchParams = this.jdOpenAppParams(
687
687
  configDataValue.clickUrl,
688
688
  )
689
689
  console.log(
690
690
  'jd web 获取店铺结果落地页链接解析后的参数结果',
691
691
  getShopSearchParams,
692
692
  )
693
693
  getShopSearchParams &&
694
694
  this.jdJumpToShopSearch(
695
695
  Object.assign({}, getShopSearchParams, {
696
696
  logEventInfo,
697
697
  }),
698
698
  )
699
699
  } else {
700
700
  this.jdJumpToWeb(configDataValue.clickUrl, logEventInfo)
701
701
  }
702
702
  break
703
703
  }
704
704
  default:
705
705
  }
706
706
  }
707
707
 
708
708
  jdNavigateToNative(
709
709
  params: {},
710
710
  url = 'openapp.jdmobile://virtual',
711
711
  successBack?: Function | null,
712
712
  failBack?: Function | null,
713
713
  ) {
714
714
  console.log('[降级H5] jdNavigateToNative web.jd:', params)
715
715
  const getResParams: JumpEventReportInterFace.JdMiniJumpParams =
716
716
  Object.assign(
717
717
  {},
718
718
  {
719
719
  sourceValue: 'sourceValue_jshopModuleWeb',
720
720
  sourceType: 'sourceType_jshopModuleWeb',
721
721
  param: {},
722
722
  },
723
723
  params,
724
724
  )
725
725
  const { logEventInfo, ...otherParams } = getResParams
726
726
  console.log(
727
727
  'jd web 获取open协议参数 jdNavigateToNative params: ',
728
728
  getResParams,
729
729
  )
730
730
  console.log('logEventInfo params: ', logEventInfo)
731
731
  global.info.pageInfo.dataType === BUSINESS_TYPE.ONLINE &&
732
732
  this.clickEventLog(logEventInfo || getResParams)
733
733
  .then(() => {
734
734
  if (typeof successBack == 'function') {
735
735
  successBack(getResParams)
736
736
  } else {
737
737
  try {
738
738
  const paramsStr = JSON.stringify(otherParams)
739
739
  console.log('跳转web jd open协议', `${url}?params=${paramsStr}`)
740
740
  window.location.href = `${url}?params=${paramsStr}`
741
741
  } catch (e) {
742
742
  console.log('跳转异常', e)
743
743
  }
744
744
  }
745
745
  })
746
746
  .catch(() => {
747
747
  typeof failBack == 'function' && failBack(getResParams)
748
748
  })
749
749
  }
750
750
 
751
751
  clickEventLog(
752
752
  opts: JumpEventReportInterFace.OptEventLogParams = {},
753
753
  reportKey = 'click',
754
754
  ) {
755
755
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts
756
756
  if (eventId && jsonParam) {
757
757
  const { etModelInfo, logBaseInfo } = jsonParam
758
758
  let getJsonParam = {}
759
759
  if (etModelInfo && logBaseInfo) {
760
760
  getJsonParam = logBaseInfo
761
761
  } else {
762
762
  if (Array.isArray(jsonParam)){
763
763
  getJsonParam = jsonParam
764
764
  } else {
765
765
  getJsonParam = Object.assign(
766
766
  {},
767
767
  {
768
768
  shopid: global.info.queryInfo?.shopId,
769
769
  },
770
770
  jsonParam,
771
771
  )
772
772
  }
773
773
  }
774
774
  if(reportKey === 'exposure' && /^TerminatorNew/.test(eventId) && !Array.isArray(getJsonParam)){
775
775
  getJsonParam = [getJsonParam]
776
776
  }
777
777
  const webLogParams = {
778
778
  eid: eventId,
779
779
  elevel: eventLevel,
780
780
  jsonParam: JSON.stringify(getJsonParam),
781
781
  etModel: JSON.stringify(etModelInfo || {}),
782
782
  pageId: this.logPageId,
783
783
  pageParam: this.logPageParamStr,
784
784
  ...otherParams,
785
785
  }
786
786
  return /click|exposure/.test(reportKey)
787
787
  ? reportClick(webLogParams)
788
788
  : reportToCart(opts,webLogParams)
789
789
  } else {
790
790
  console.log('暂无埋点参数eventId和eventParam')
791
791
  return Promise.resolve(false)
792
792
  }
793
793
  }
794
794
 
795
795
  exposureEventLog(opts) {
796
796
  return global.info.pageInfo.dataType === BUSINESS_TYPE.ONLINE
797
797
  ? this.clickEventLog(
798
798
  {
799
799
  ...opts,
800
800
  exposureState: true,
801
801
  },
802
802
  'exposure',
803
803
  )
804
804
  : Promise.resolve(false)
805
805
  }