@conecli/cone-render 0.8.44 → 0.8.46-beta.0

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