@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 Taro from '@tarojs/taro'
2
1
  JUMP_MEMBER_CHANNEL,
3
2
  SECTION_HOME_TAB_NAME_TYPE,
4
3
  SECTION_HOME_TAB_TYPE,
5
4
  SHOP_MENU_ID_NAME,
6
5
  SHOP_MENU_ID_TYPE,
7
6
  routerInfo: {
8
7
  params: {},
9
8
  },
10
9
  nativeEvent: null,
11
10
  logPageParamStr: '',
12
11
  implements JumpEventReportInterFace.JumpEventReportInit
13
12
  public jingGouMiniState: boolean
14
13
  public logPageId: string
15
14
  public logPageParamStr: string
16
15
  public nativeEvent: any
17
16
  public routerInfo: JumpEventReportInterFace.RouterInfo
18
17
  public logPname: LogPnameInfo
19
18
  public jumpMiniPath: JumpEventReportInterFace.JumpMiniPath
20
19
  public jumpWebUrl: JumpEventReportInterFace.jumpWebUrl
21
20
  public sectionExposureInfo: object
22
21
  public logPageIdInfo: any
23
22
  public logPnameInfo: any
24
23
  constructor(opt = {}) {
25
24
  this.logPageId = LogPageIdInfo.APP
26
25
  this.logPageIdInfo = LogPageIdInfo
27
26
  this.logPnameInfo = LogPnameInfo
28
27
  this.jingGouMiniState = false
29
28
  this.jumpMiniPath = JumpMiniPath
30
29
  this.jumpWebUrl = JumpWebUrl
31
30
  this.sectionExposureInfo = {}
32
31
  this.getConfig(opt)
33
32
  }
34
33
  getConfig(opt) {
35
34
  return Object.assign(this, {}, defaultConfig, opt)
36
35
  }
37
36
 
38
37
  updateInfo(
39
38
  routerInfo,
40
39
  logPname = LogPnameInfo.HOME,
41
40
  pageId = LogPageIdInfo.APP,
42
41
  ) {
43
42
  this.routerInfo = routerInfo
44
43
  this.logPname = logPname
45
44
  this.logPageId = pageId
46
45
  }
47
46
  reportInfoPv(_pageId, _opt = {}) {}
48
47
 
49
48
  getShopIdOrVenderIdParams(
50
49
  params: JumpEventReportInterFace.ShopIdsInfo = {},
51
50
  ): JumpEventReportInterFace.ShopIdsInfo {
52
51
  const setParams = {}
53
52
  params.shopId && (setParams['shopId'] = `${params.shopId}`)
54
53
  params.venderId && (setParams['venderId'] = `${params.venderId}`)
55
54
  return setParams
56
55
  }
57
56
 
58
57
  getShopIdsInfo(params = {}): JumpEventReportInterFace.ShopIdsInfo {
59
58
  let setParams = this.getShopIdOrVenderIdParams(params)
60
59
  setParams = {
61
60
  ...params,
62
61
  ...setParams,
63
62
  }
64
63
  return setParams
65
64
  }
66
65
 
67
66
  jdJumpToShopHome(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
68
67
  console.log('[降级H5] jdJumpToShopHome base')
69
68
  const getInfo = Object.assign(
70
69
  {},
71
70
  {
72
71
  shopId: global.info.queryInfo.shopId,
73
72
  venderId: global.info.queryInfo.venderId,
74
73
  },
75
74
  shopInfo,
76
75
  )
77
76
  this.jdJumpToShopBase(getInfo)
78
77
  }
79
78
 
80
79
  jdJumpToShopHomeInner(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
81
80
  this.jdJumpToShopHome(shopInfo)
82
81
  }
83
82
 
84
83
  jdJumpToShopBase(shopInfo) {
85
84
  console.log('[降级H5] jdJumpToShopBase')
86
85
  this.jdNavigateToNative(
87
86
  `${this.jumpMiniPath.shop}?${objectToUrlEncode(
88
87
  this.getShopIdOrVenderIdParams(shopInfo),
89
88
  )}`,
90
89
  {
91
90
  ...shopInfo,
92
91
  },
93
92
  )
94
93
  }
95
94
 
96
95
  jdJumpToShopLight(shopInfo) {
97
96
  this.jdNavigateToNative(
98
97
  `${this.jumpMiniPath.shopLight}?${objectToUrlEncode(
99
98
  this.getShopIdOrVenderIdParams(shopInfo),
100
99
  )}`,
101
100
  {
102
101
  ...shopInfo,
103
102
  },
104
103
  )
105
104
  }
106
105
 
107
106
  jdJumpToProduct(skuIds, logEventInfo) {
108
107
  skuIds = skuIds.toString().trim()
109
108
  const getSkuId = skuIds.indexOf(',') !== -1 ? skuIds.split(',')[0] : skuIds
110
109
  this.jdNavigateToNative(
111
110
  `${this.jumpMiniPath.detail}?sku=${getSkuId}`,
112
111
  logEventInfo,
113
112
  )
114
113
  }
115
114
 
116
115
  jdJumpToFlashSaleTab(_logEventInfo) {
117
116
  console.log('跳转闪购', _logEventInfo)
118
117
  }
119
118
 
120
119
 
121
120
  jdJumpToShopMemberInfo(logEventInfo) {
122
121
  console.log('跳转修改会员信息页', logEventInfo)
123
122
  }
124
123
 
125
124
  jdJumpToShopMemberPointDetail(logEventInfo) {
126
125
  const venderId = global.info.queryInfo.venderId
127
126
  const shopId = global.info.queryInfo.shopId
128
127
  this.jdJumpToWeb(
129
128
  `${this.jumpWebUrl.shopMemberPointDetail}?venderId=${venderId}&shopId=${shopId}`,
130
129
  logEventInfo,
131
130
  )
132
131
  }
133
132
 
134
133
  jdJumpToShopMemberBenefit(logEventInfo) {
135
134
  const venderId = global.info.queryInfo.venderId
136
135
  const shopId = global.info.queryInfo.shopId
137
136
  this.jdJumpToWeb(
138
137
  `${this.jumpWebUrl.memberBenefit}?venderId=${venderId}&shopId=${shopId}`,
139
138
  logEventInfo,
140
139
  )
141
140
  }
142
141
 
143
142
  jdJumpToShopMemberRule(logEventInfo) {
144
143
  const venderId = global.info.queryInfo.venderId
145
144
  const shopId = global.info.queryInfo.shopId
146
145
  console.log('会员规则页h5 global.info', global.info)
147
146
  this.jdJumpToWeb(
148
147
  `${this.jumpWebUrl.shopMemberRule}?venderId=${venderId}&shopId=${shopId}&sign=member`,
149
148
  logEventInfo,
150
149
  )
151
150
  }
152
151
 
153
152
  jdJumpToShopMemberCloseAccount(venderType, logEventInfo) {
154
153
  const venderId = global.info.queryInfo.venderId
155
154
  const shopId = global.info.queryInfo.shopId
156
155
  console.log('注销会员页h5 global.info', global.info)
157
156
  this.jdJumpToWeb(
158
157
  `${this.jumpWebUrl.shopMemberCloseAccount}?venderId=${venderId}&shopId=${shopId}&venderType=${venderType}`,
159
158
  logEventInfo,
160
159
  )
161
160
  }
162
161
 
163
162
  jdJumpToShopMemberPointExchange(venderType, levelZeroMenuUrl, logEventInfo) {
164
163
  const venderId = global.info.queryInfo.venderId
165
164
  const shopId = global.info.queryInfo.shopId
166
165
  const channel = JUMP_MEMBER_CHANNEL.H5
167
166
  this.jdJumpToWeb(
168
167
  `${this.jumpWebUrl.shopMemberPointExchange}?venderId=${venderId}&shopId=${shopId}&venderType=${venderType}&channel=${channel}&levelZeroMenuUrl=${levelZeroMenuUrl}`,
169
168
  logEventInfo,
170
169
  )
171
170
  }
172
171
 
173
172
  jdJumpToShopMemberBonusPurchase(customerLevel, logEventInfo) {
174
173
  const venderId = global.info.queryInfo.venderId
175
174
  const shopId = global.info.queryInfo.shopId
176
175
  this.jdJumpToWeb(
177
176
  `${this.jumpWebUrl.shopMemberBonusPurchase}?venderId=${venderId}&shopId=${shopId}&customerLevel=${customerLevel}`,
178
177
  logEventInfo,
179
178
  )
180
179
  }
181
180
 
182
181
  jdJumpToShopMemberGood(customerLevel, logEventInfo) {
183
182
  const venderId = global.info.queryInfo.venderId
184
183
  const shopId = global.info.queryInfo.shopId
185
184
  this.jdJumpToWeb(
186
185
  `${this.jumpWebUrl.shopMemberGood}?venderId=${venderId}&shopId=${shopId}&customerLevel=${customerLevel}`,
187
186
  logEventInfo,
188
187
  )
189
188
  }
190
189
 
191
190
  jdJumpToBeanDetail(logEventInfo) {
192
191
  console.log('this.jumpWebUrl.beanDetail', this.jumpWebUrl.beanDetail)
193
192
  this.jdJumpToWeb(
194
193
  `${this.jumpWebUrl.beanDetail}?source=dianpuhuiyuan`,
195
194
  logEventInfo,
196
195
  )
197
196
  }
198
197
 
199
198
  jdJumpToMyRedEnvelope(logEventInfo) {
200
199
  this.jdJumpToWeb(
201
200
  this.jumpWebUrl.myRedPacketList,
202
201
  logEventInfo,
203
202
  )
204
203
  }
205
204
 
206
205
  jdJumpToMyCoupon(logEventInfo) {
207
206
  this.jdJumpToWeb(
208
207
  this.jumpWebUrl.myCouponList,
209
208
  logEventInfo,
210
209
  )
211
210
  }
212
211
 
213
212
  jdJumpToNewH5MemberCard(logEventInfo?) {
214
213
  const venderId = global.info.queryInfo.venderId
215
214
  const shopId = global.info.queryInfo.shopId
216
215
  this.jdJumpToWeb(
217
216
  `${this.jumpWebUrl.shopH5MemberCardM}?venderId=${venderId}&shopId=${shopId}`,
218
217
  logEventInfo,
219
218
  )
220
219
  }
221
220
 
222
221
 
223
222
  jdJumpToTabAllProduct(shopId, venderId, logEventInfo = {}) {
224
223
  console.log('base.ts - jdJumpToTabAllProduct')
225
224
  if (typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId
226
225
  if (typeof venderId === 'undefined')
227
226
  venderId = global.info.queryInfo.venderId
228
227
  this.jdJumpToWeb(
229
228
  `${this.jumpWebUrl.pages}?shopId=${shopId}&venderId=${venderId}&tabActive=home-product`,
230
229
  logEventInfo,
231
230
  )
232
231
  }
233
232
 
234
233
  jdJumpToTabAllProductInner(shopId, venderId, logEventInfo = {}) {
235
234
  if (typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId
236
235
  if (typeof venderId === 'undefined')
237
236
  venderId = global.info.queryInfo.venderId
238
237
  this.jdJumpToTabAllProduct(shopId, venderId, logEventInfo)
239
238
  }
240
239
 
241
240
  jdJumpToTopTabBase(type, shopInfo = {}) {
242
241
  const getInfo = Object.assign(
243
242
  {},
244
243
  {
245
244
  shopId: global.info.queryInfo.shopId,
246
245
  venderId: global.info.queryInfo.venderId,
247
246
  },
248
247
  shopInfo,
249
248
  )
250
249
  this.jdJumpToWeb(
251
250
  `${this.jumpWebUrl.shopHome}?${objectToUrlEncode(
252
251
  this.getShopIdOrVenderIdParams(getInfo),
253
252
  )}&tabActive=${type}`,
254
253
  getInfo,
255
254
  )
256
255
  }
257
256
 
258
257
  jdJumpToTabNew(shopInfo = {}) {
259
258
  console.log('上新tab')
260
259
  this.jdJumpToTopTabBase(
261
260
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_NEW_PRODUCT],
262
261
  shopInfo,
263
262
  )
264
263
  }
265
264
 
266
265
  jdJumpToTabNewInner(shopInfo = {}) {
267
266
  this.jdJumpToTabNew(shopInfo)
268
267
  }
269
268
 
270
269
  jdJumpToTabRank(shopInfo = {}) {
271
270
  console.log('榜单tab')
272
271
  this.jdJumpToTopTabBase(
273
272
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_RANK],
274
273
  shopInfo,
275
274
  )
276
275
  }
277
276
  jdJumpToTabRankInner(shopInfo = {}) {
278
277
  this.jdJumpToTabRank(shopInfo)
279
278
  }
280
279
  jdJumpToTabBuyerShow(shopInfo = {}) {
281
280
  console.log('买家秀tab')
282
281
  this.jdJumpToTopTabBase(
283
282
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_BUYER_SHOW],
284
283
  shopInfo,
285
284
  )
286
285
  }
287
286
  jdJumpToTabBuyerShowInner(shopInfo = {}) {
288
287
  this.jdJumpToTabBuyerShow(shopInfo)
289
288
  }
290
289
  jdJumpToTabActivity(shopInfo = {}) {
291
290
  console.log('活动tab')
292
291
  this.jdJumpToTopTabBase(
293
292
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_ACTIVITY],
294
293
  shopInfo,
295
294
  )
296
295
  }
297
296
  jdJumpToTabActivityInner(shopInfo = {}) {
298
297
  this.jdJumpToTabActivity(shopInfo)
299
298
  }
300
299
  jdJumpToTabSecKill(shopInfo = {}) {
301
300
  console.log('秒杀tab')
302
301
  this.jdJumpToTopTabBase(
303
302
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_SECKILL],
304
303
  shopInfo,
305
304
  )
306
305
  }
307
306
  jdJumpToTabSecKillInner(shopInfo = {}) {
308
307
  this.jdJumpToTabSecKill(shopInfo)
309
308
  }
310
309
 
311
310
  jdJumpToBottomTabBase(type, shopInfo = {}) {
312
311
  this.jdJumpToTopTabBase(type, shopInfo)
313
312
  }
314
313
  jdJumpToBottomTabProduct(shopInfo = {}) {
315
314
  this.jdJumpToBottomTabBase(
316
315
  SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.PRODUCT],
317
316
  shopInfo,
318
317
  )
319
318
  }
320
319
  jdJumpToBottomTabCategory(shopInfo = {}) {
321
320
  this.jdJumpToBottomTabBase(
322
321
  SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.CLASSIFY],
323
322
  shopInfo,
324
323
  )
325
324
  }
326
325
  jdJumpToBottomTabFind(shopInfo = {}) {
327
326
  console.log('发现tab')
328
327
  }
329
328
  jdJumpToBottomTabBrandMember(shopInfo = {}) {
330
329
  const getInfo = Object.assign(
331
330
  {},
332
331
  {
333
332
  shopId: global.info.queryInfo.shopId,
334
333
  venderId: global.info.queryInfo.venderId,
335
334
  },
336
335
  shopInfo,
337
336
  )
338
337
  this.jdJumpToWeb(
339
338
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(
340
339
  this.getShopIdOrVenderIdParams(getInfo),
341
340
  )}`,
342
341
  getInfo,
343
342
  )
344
343
  }
345
344
  jdJumpToBottomTabBrandMemberInner(shopInfo = {}) {
346
345
  this.jdJumpToBottomTabBrandMember(shopInfo)
347
346
  }
348
347
 
349
348
  jdJumpToAppHome(logEventInfo) {
350
349
  this.jdJumpToWeb(
351
350
  `${this.jumpWebUrl.mobileHome}?originReferer=shopx`,
352
351
  logEventInfo,
353
352
  )
354
353
  }
355
354
 
356
355
  jdJumpToShopSearch(queryParams) {
357
356
  const getInfo = Object.assign(
358
357
  {},
359
358
  {
360
359
  shopId: global.info.queryInfo.shopId,
361
360
  venderId: global.info.queryInfo.venderId,
362
361
  },
363
362
  queryParams,
364
363
  )
365
364
  const { shopId, categoryId, keyword, pageId, description, shopName } =
366
365
  getInfo
367
366
  const cateId = categoryId
368
367
  ? `&cateId=${
369
368
  typeof categoryId === 'string' ? categoryId?.trim() : categoryId
370
369
  }`
371
370
  : ''
372
371
  const addKeyWord = keyword ? `&keyword=${keyword}` : ''
373
372
  const addPageId = pageId ? `&pageId=${pageId}` : ''
374
373
  const searchDes = description ? `&description=${description}` : ''
375
374
  const shopNameDes = shopName ? `&shopName=${shopName}` : ''
376
375
  const searchType = categoryId ? 5 : keyword ? 4 : 3
377
376
  this.jdJumpToWeb(
378
377
  `${this.jumpWebUrl.shopSearch}?shopId=${shopId}&searchType=${searchType}${cateId}${addKeyWord}${addPageId}${searchDes}${shopNameDes}`,
379
378
  getInfo,
380
379
  )
381
380
  }
382
381
 
383
382
  jdJumpToSearch(shopId, suggestWord) {
384
383
  console.log('搜索中间页')
385
384
  }
386
385
 
387
386
  jdJumpToOrderList() {
388
387
  console.warn(
389
388
  '触发基类的jdJumpToOrderList,这不是一个期望的结果,应该调用各端子类来实现',
390
389
  )
391
390
  }
392
391
 
393
392
  jdJumpToCouponSearchProductList(couponId, logEventInfo = {}) {
394
393
  this.jdJumpToWeb(
395
394
  `${this.jumpWebUrl.couponSearch}?couponbatch=${couponId}&sceneval=2`,
396
395
  logEventInfo,
397
396
  )
398
397
  }
399
398
 
400
399
  jdJumpToWeb(
401
400
  spUrl,
402
401
  logEventInfo,
403
402
  successBack?: Function | undefined,
404
403
  failBack?: Function | undefined,
405
404
  ) {
406
405
  this.jdNavigateToNative(
407
406
  `${this.jumpMiniPath.h5}?encode_url=` + encodeURIComponent(spUrl),
408
407
  {
409
408
  ...logEventInfo,
410
409
  },
411
410
  successBack,
412
411
  failBack,
413
412
  )
414
413
  }
415
414
 
416
415
  jdJumpToWebInner(url, logEventInfo) {
417
416
  this.jdJumpToWeb(url, logEventInfo)
418
417
  }
419
418
 
420
419
  weappRedirectToWeb(
421
420
  url: string,
422
421
  logEventInfo: JumpEventReportInterFace.OptEventLogParams = {},
423
422
  ) {
424
423
  console.log('weappRedirectToWeb base:', url)
425
424
  }
426
425
 
427
426
  jdJumpToLive(liveInfo, logEventInfo = {}) {
428
427
  if (liveInfo?.liveId) {
429
428
  this.jdJumpToWeb(
430
429
  `${this.jumpWebUrl.mLive}/${liveInfo?.liveId}?origin=30`,
431
430
  logEventInfo,
432
431
  )
433
432
  }
434
433
  }
435
434
 
436
435
  jdJumpToUgcContent(urlObj, logEventInfo = {}) {
437
436
  if (typeof urlObj === 'object') {
438
437
  this.jdJumpToWeb(
439
438
  `${this.jumpWebUrl.shopUseShareOrderUgcContent}?${objectToUrlEncode(
440
439
  urlObj,
441
440
  )}`,
442
441
  { logEventInfo },
443
442
  )
444
443
  } else {
445
444
  const getShopUgcParams = this.jdOpenAppParams(urlObj)
446
445
  console.log('getShopUgcParams=====', getShopUgcParams)
447
446
  if (getShopUgcParams) {
448
447
  getShopUgcParams['category'] && delete getShopUgcParams['category']
449
448
  getShopUgcParams['des'] && delete getShopUgcParams['des']
450
449
  this.jdJumpToWeb(
451
450
  `${this.jumpWebUrl.shopUseShareOrderUgcContent}?${objectToUrlEncode(
452
451
  getShopUgcParams as Object,
453
452
  )}`,
454
453
  { logEventInfo },
455
454
  )
456
455
  }
457
456
  }
458
457
  }
459
458
 
460
459
  jdJumpToShopActivity(shopInfo) {
461
460
  const getParams = Object.assign(
462
461
  {},
463
462
  {
464
463
  category: 'jump',
465
464
  des: 'jshopActivity',
466
465
  shopId: global.info.queryInfo.shopId,
467
466
  venderId: global.info.queryInfo.venderId,
468
467
  },
469
468
  shopInfo,
470
469
  )
471
470
  getParams['projectId'] &&
472
471
  (getParams['projectId'] = `${getParams['projectId']}`)
473
472
  }
474
473
 
475
474
  jdJumpToShopMember(shopInfo) {
476
475
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
477
476
  this.jdJumpToWeb(
478
477
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(getShopInfo)}`,
479
478
  shopInfo,
480
479
  )
481
480
  }
482
481
 
483
482
  jdJumpToMemberTab(shopInfo?) {
484
483
  console.log('店内跳转会员tab', shopInfo)
485
484
  }
486
485
 
487
486
  jdJumpToShopMemberCard(shopInfo) {
488
487
  const { logEventInfo } = shopInfo
489
488
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
490
489
  this.jdJumpToWeb(
491
490
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(getShopInfo)}`,
492
491
  logEventInfo,
493
492
  )
494
493
  }
495
494
 
496
495
  jdJumpToTotalPromotion(shopInfo) {
497
496
  const { url, logEventInfo } = shopInfo
498
497
  if (this.isOpenJdAppUrl(url)) {
499
498
  const getOpenAppParams: any = this.jdOpenAppParams(url)
500
499
  if (getOpenAppParams) {
501
500
  if (getOpenAppParams?.activityId) {
502
501
  this.jdJumpToWeb(
503
502
  `${this.jumpWebUrl.totalPromotion}?activity_id=${getOpenAppParams?.activityId}`,
504
503
  shopInfo,
505
504
  )
506
505
  }
507
506
  }
508
507
  } else {
509
508
  this.jdJumpToWeb(url, logEventInfo)
510
509
  }
511
510
  }
512
511
 
513
512
  jdJumpToDongDongChatGroup(groupId, source = 'jdmini') {
514
513
  console.warn('JdJumpToDongDongChatGroup method is invoked, but should be implemented in subclasses');
515
514
  }
516
515
 
517
516
  jdJumpToDongDongChat(paramInfo) {
518
517
  const getInfo = Object.assign(
519
518
  {},
520
519
  {
521
520
  venderId: global.info.queryInfo.venderId,
522
521
  },
523
522
  paramInfo,
524
523
  )
525
524
  const { venderId = '1', entry = 'm_shop', ...otherInfo } = getInfo
526
525
  const dongdongUrl = `${this.jumpWebUrl.dongDongChat}?venderId=${venderId}&entry=${entry}&sceneval=2`
527
526
  this.jdJumpToWeb(dongdongUrl, otherInfo)
528
527
  }
529
528
 
530
529
  jdJumpToShopDetail(shopInfo) {
531
530
  const getInfo = Object.assign(
532
531
  {},
533
532
  {
534
533
  shopId: global.info.queryInfo.shopId,
535
534
  venderId: global.info.queryInfo.venderId,
536
535
  },
537
536
  shopInfo,
538
537
  )
539
538
  const getShopInfo = this.getShopIdOrVenderIdParams(getInfo)
540
539
  this.jdJumpToWeb(
541
540
  `${this.jumpWebUrl.shopIntroduce}?${objectToUrlEncode(getShopInfo)}`,
542
541
  getInfo,
543
542
  )
544
543
  }
545
544
 
546
545
  jdJumpToShopLottery(shopTotalInfo) {
547
546
  const getInfo = Object.assign(
548
547
  {},
549
548
  {
550
549
  shopId: global.info.queryInfo.shopId,
551
550
  venderId: global.info.queryInfo.venderId,
552
551
  },
553
552
  shopTotalInfo,
554
553
  )
555
554
  const getShopInfo = this.getShopIdOrVenderIdParams(getInfo)
556
555
  this.jdJumpToWeb(
557
556
  `${this.jumpWebUrl.shopLottery}?${objectToUrlEncode(getShopInfo)}`,
558
557
  getInfo,
559
558
  )
560
559
  }
561
560
 
562
561
  jdJumpToMiniProgram({
563
562
  appId,
564
563
  path,
565
564
  param = {},
566
565
  }: JumpEventReportInterFace.LinkMiniParams) {
567
566
  const pageName = param['pageType'] || 'home'
568
567
  path = `pages/${pageName}/index`
569
568
  if (appId === global.info.pageInfo?.appId) {
570
569
  Taro.navigateTo({
571
570
  url: `/${path}?${objectToUrlEncode(param)}`,
572
571
  }).catch((err) => {
573
572
  console.warn('跳转小程序页面错误:', err)
574
573
  })
575
574
  } else {
576
575
  console.log('一个小程序跳转到另一个小程序暂无此业务')
577
576
  }
578
577
  }
579
578
 
580
579
  jdJumpToAppMiniProgram(
581
580
  path: string,
582
581
  param = {},
583
582
  successBack?: Function,
584
583
  failBack?: Function,
585
584
  ) {
586
585
  this.jdNavigateToNative(path, param, successBack, failBack)
587
586
  }
588
587
 
589
588
  jdJumpConfigUrl(detail, logEventInfo = {}) {
590
589
  const { configDataType, configDataValue } = detail
591
590
  switch (configDataType) {
592
591
  case LinkConfigType.CONFIG_TYPE_SKU_LIST:
593
592
  if (logEventInfo?.jsonParam?.logBaseInfo?.mInfo) {
594
593
  logEventInfo.jsonParam.logBaseInfo.mInfo.skuid =
595
594
  configDataValue.skuIds
596
595
  }
597
596
  this.jdJumpToProduct(configDataValue.skuIds, logEventInfo)
598
597
  break
599
598
  case LinkConfigType.CONFIG_TYPE_COUPON_LIST:
600
599
  this.jdJumpToWeb(
601
600
  `${this.jumpWebUrl.shopCoupon}?couponType=1&shopId=${global.info.queryInfo.shopId}&venderId=${global.info.queryInfo.venderId}`,
602
601
  logEventInfo,
603
602
  )
604
603
  break
605
604
  case LinkConfigType.CONFIG_TYPE_CATEGORY:
606
605
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
607
606
  const getShopSearchParams = this.jdOpenAppParams(
608
607
  configDataValue.clickUrl,
609
608
  )
610
609
  getShopSearchParams &&
611
610
  this.jdJumpToShopSearch(
612
611
  Object.assign({}, getShopSearchParams, {
613
612
  logEventInfo,
614
613
  }),
615
614
  )
616
615
  } else {
617
616
  this.jdJumpToShopSearch(
618
617
  configDataValue['cid']
619
618
  ? Object.assign(
620
619
  {},
621
620
  {
622
621
  shopId: global.info.queryInfo.shopId,
623
622
  categoryId: configDataValue.cid,
624
623
  logEventInfo,
625
624
  },
626
625
  )
627
626
  : {
628
627
  shopId: global.info.queryInfo.shopId,
629
628
  logEventInfo,
630
629
  },
631
630
  )
632
631
  }
633
632
  break
634
633
  case LinkConfigType.CONFIG_TYPE_MEMBER:
635
634
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
636
635
  const getShopMemberParams = this.jdOpenAppParams(
637
636
  configDataValue.clickUrl,
638
637
  )
639
638
  getShopMemberParams &&
640
639
  this.jdJumpToShopMember(
641
640
  Object.assign({}, getShopMemberParams, {
642
641
  logEventInfo,
643
642
  }),
644
643
  )
645
644
  } else {
646
645
  this.jdJumpToShopMember({
647
646
  shopId: global.info.queryInfo.shopId,
648
647
  venderId: configDataValue.shopDetail,
649
648
  logEventInfo,
650
649
  })
651
650
  }
652
651
  break
653
652
  case LinkConfigType.CONFIG_TYPE_SHOP_ACTIVITY:
654
653
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
655
654
  const getShopActivityParams = this.jdOpenAppParams(
656
655
  configDataValue.clickUrl,
657
656
  )
658
657
  getShopActivityParams &&
659
658
  this.jdJumpToShopActivity(
660
659
  Object.assign({}, getShopActivityParams, {
661
660
  logEventInfo,
662
661
  }),
663
662
  )
664
663
  } else if (configDataValue['projectId']) {
665
664
  this.jdJumpToShopActivity({
666
665
  projectId: configDataValue['projectId'],
667
666
  configDataValue,
668
667
  logEventInfo,
669
668
  })
670
669
  }
671
670
  break
672
671
  case LinkConfigType.CONFIG_TYPE_CUSTOM_LINK:
673
672
  case LinkConfigType.CONFIG_TYPE_FINANCE_COUPON: {
674
673
  const _url = configDataValue.linkUrl
675
674
  if (
676
675
  _url.indexOf('to=') === -1 &&
677
676
  _url.indexOf(`${domain.mshop.replace(/https?:/, '')}/?shopId=`) !== -1
678
677
  ) {
679
678
  const _shopId = _url.match(/\d+/g)[0]
680
679
  this.jdJumpToShopHome({
681
680
  shopId: `${_shopId}`,
682
681
  logEventInfo,
683
682
  })
684
683
  } else if (this.isOpenJdAppUrl(_url)) {
685
684
  const getOpenAppParams = this.jdOpenAppParams(_url)
686
685
  console.log('获取解析后的参数结果', getOpenAppParams)
687
686
  if (getOpenAppParams) {
688
687
  isJdApp
689
688
  ? this.jdNavigateToNative(
690
689
  Object.assign({}, getOpenAppParams, {
691
690
  logEventInfo,
692
691
  }),
693
692
  )
694
693
  : this.jdNavigateToNative(
695
694
  '',
696
695
  Object.assign({}, getOpenAppParams, {
697
696
  logEventInfo,
698
697
  }),
699
698
  )
700
699
  } else {
701
700
  this.jdNavigateToNative(
702
701
  '',
703
702
  Object.assign({}, getOpenAppParams, {
704
703
  logEventInfo,
705
704
  }),
706
705
  )
707
706
  }
708
707
  } else {
709
708
  this.jdJumpToWeb(_url, logEventInfo)
710
709
  }
711
710
  break
712
711
  }
713
712
  case LinkConfigType.CONFIG_TYPE_JSHOP_DETAIL:
714
713
  this.jdJumpToShopDetail({
715
714
  venderId: global.info.queryInfo.venderId,
716
715
  shopId: global.info.queryInfo.shopId,
717
716
  logEventInfo,
718
717
  })
719
718
  break
720
719
  case LinkConfigType.CONFIG_TYPE_SHOP_HOME:
721
720
  this.jdJumpToShopHome({
722
721
  ...configDataValue,
723
722
  logEventInfo,
724
723
  })
725
724
  break
726
725
  case LinkConfigType.CONFIG_TYPE_ANCHOR_POINT:
727
726
  break
728
727
  case LinkConfigType.CONFIG_TYPE_SHOPPING_GUIDE:
729
728
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
730
729
  const getShoppingGuideParams = this.jdOpenAppParams(
731
730
  configDataValue.clickUrl,
732
731
  )
733
732
  getShoppingGuideParams &&
734
733
  this.jdJumpToShopActivity(
735
734
  Object.assign({}, getShoppingGuideParams, {
736
735
  logEventInfo,
737
736
  }),
738
737
  )
739
738
  }
740
739
  break
741
740
  case LinkConfigType.CONFIG_TYPE_MINI_PROGRAM: {
742
741
  const linkUrl = decodeURIComponent(configDataValue?.linkUrl || '')
743
742
  const search = linkUrl.match(/\?.+/)
744
743
  if (search) {
745
744
  const miniQueryData: JumpEventReportInterFace.LinkMiniParams =
746
745
  parseQueryUrlString(linkUrl)
747
746
  try {
748
747
  miniQueryData.param = JSON.parse(<string>miniQueryData?.param)
749
748
  } catch (e) {
750
749
  console.warn('解析小程序 param 错误:', miniQueryData.param)
751
750
  }
752
751
  this.jdJumpToMiniProgram(miniQueryData)
753
752
  } else {
754
753
  console.warn('小程序地址错误:', linkUrl)
755
754
  }
756
755
  break
757
756
  }
758
757
  default:
759
758
  }
760
759
  }
761
760
 
762
761
  jdOpenAppParams(openAppUrl): Object | boolean {
763
762
  let getParams: boolean | Object = false
764
763
  if (this.isOpenJdAppUrl(openAppUrl)) {
765
764
  try {
766
765
  getParams = openAppUrl.replace(
767
766
  /openApp\.jdMobile:\/\/virtual\?params=/i,
768
767
  '',
769
768
  )
770
769
  getParams = JSON.parse(String(getParams))
771
770
  } catch (e) {
772
771
  console.log(e)
773
772
  }
774
773
  }
775
774
  return getParams
776
775
  }
777
776
  isOpenJdAppUrl(openAppUrl) {
778
777
  return /openApp\.jdMobile:\/\/virtual\?params=/i.test(openAppUrl)
779
778
  }
780
779
 
781
780
  creatParamToLogStr(eventParam) {
782
781
  return eventParam
783
782
  ? Object.keys(eventParam)
784
783
  .map((key) => {
785
784
  return `${key}_${eventParam[key]}`
786
785
  })
787
786
  .join('_')
788
787
  : ''
789
788
  }
790
789
 
791
790
  jdNavigateToNative(
792
791
  url: string,
793
792
  params: {
794
793
  logEventInfo?: object
795
794
  } = {},
796
795
  successBack?: Function | undefined,
797
796
  failBack?: Function | undefined,
798
797
  ) {
799
798
  const { logEventInfo } = params
800
799
  const getEparam = logEventInfo || params
801
800
  console.log('jdNavigateToNative params: ', params)
802
801
  console.log('logEventInfo params: ', logEventInfo)
803
802
  try {
804
803
  this.clickEventLog(getEparam)
805
804
  } catch (e) {
806
805
  console.log(e)
807
806
  }
808
807
  setTimeout(() => {
809
808
  Taro.navigateTo({
810
809
  url,
811
810
  })
812
811
  .then((res) => {
813
812
  typeof successBack === 'function' && successBack(res)
814
813
  console.log('navigateToWxapp.success', res)
815
814
  })
816
815
  .catch((err) => {
817
816
  typeof failBack === 'function' && failBack(err)
818
817
  console.log('navigateToWxapp.fail', err)
819
818
  })
820
819
  }, 200)
821
820
  }
822
821
 
823
822
  clickEventLog(
824
823
  opts: JumpEventReportInterFace.OptEventLogParams = {},
825
824
  clickKey = 'click',
826
825
  ) {
827
826
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts
828
827
  if (eventId && jsonParam) {
829
828
  const { etModelInfo, logBaseInfo } = jsonParam
830
829
  let getJsonParam = logBaseInfo || jsonParam
831
830
  if(etModelInfo && logBaseInfo){
832
831
  getJsonParam = logBaseInfo
833
832
  }else {
834
833
  if(Array.isArray(jsonParam)){
835
834
  getJsonParam = jsonParam
836
835
  }else {
837
836
  getJsonParam = Object.assign(
838
837
  {},
839
838
  {
840
839
  shopid: global.info.queryInfo?.shopId,
841
840
  },
842
841
  jsonParam,
843
842
  )
844
843
  }
845
844
  }
846
845
  const miniClickKey = clickKey === 'addToCart' ? 'addToCart' : 'click'
847
846
  const miniLogParams = {
848
847
  eid: eventId,
849
848
  elevel: eventLevel,
850
849
  ext: JSON.stringify(getJsonParam),
851
850
  etModel: JSON.stringify(etModelInfo || {}),
852
851
  pname: this.logPname,
853
852
  pparam: JSON.stringify(this.routerInfo.params),
854
853
  target: this.routerInfo.path,
855
854
  event: this.nativeEvent,
856
855
  pageId: this.logPageId,
857
856
  ...otherParams,
858
857
  }
859
858
  console.log('点击埋点参数对象', miniLogParams, miniClickKey)
860
859
  global.miniAppLogInstance &&
861
860
  global.miniAppLogInstance[miniClickKey](miniLogParams)
862
861
  }
863
862
  }
864
863
 
865
864
  exposureEventLog(opts: JumpEventReportInterFace.OptEventLogParams = {}) {
866
865
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts
867
866
  if (eventId && jsonParam) {
868
867
  const { etModelInfo, logBaseInfo } = jsonParam
869
868
  let getJsonParam = {}
870
869
  if(etModelInfo && logBaseInfo){
871
870
  getJsonParam = logBaseInfo
872
871
  }else {
873
872
  if(Array.isArray(jsonParam)){
874
873
  getJsonParam = jsonParam
875
874
  }else {
876
875
  getJsonParam = Object.assign(
877
876
  {},
878
877
  {
879
878
  shopid: global.info.queryInfo?.shopId,
880
879
  },
881
880
  jsonParam,
882
881
  )
883
882
  }
884
883
  }
885
884
  const miniLogParams = {
886
885
  eid: eventId,
887
886
  elevel: eventLevel,
888
887
  ext: JSON.stringify(getJsonParam),
889
888
  etModel: JSON.stringify(etModelInfo || {}),
890
889
  pname: this.logPname,
891
890
  pparam: JSON.stringify(this.routerInfo.params),
892
891
  target: this.routerInfo.path,
893
892
  pageId: this.logPageId,
894
893
  ...otherParams,
895
894
  }
896
895
  global.miniAppLogInstance &&
897
896
  global.miniAppLogInstance['exposure'](miniLogParams)
898
897
  }
899
898
  }
900
899
 
901
900
  initOpenTriggerExposure(type) {
902
901
  if (!this.sectionExposureInfo[type]) {
903
902
  Taro.nextTick(() => {
904
903
  setTimeout(() => {
905
904
  global.info.pageInfo.isExposureState = true
906
905
  taroEventInitExposure()
907
906
  this.sectionExposureInfo[`${type}`] = true
908
907
  }, 200)
909
908
  })
910
909
  }
911
910
  }
911
+ import Taro from '@tarojs/taro';
912
912
  JUMP_MEMBER_CHANNEL,
913
913
  SECTION_HOME_TAB_NAME_TYPE,
914
914
  SECTION_HOME_TAB_TYPE,
915
915
  SHOP_MENU_ID_NAME,
916
916
  SHOP_MENU_ID_TYPE,
917
917
  routerInfo: {
918
918
  params: {},
919
919
  },
920
920
  nativeEvent: null,
921
921
  logPageParamStr: '',
922
922
  public jingGouMiniState: boolean;
923
923
  public logPageId: string;
924
924
  public logPageParamStr: string;
925
925
  public nativeEvent: any;
926
926
  public routerInfo: JumpEventReportInterFace.RouterInfo;
927
927
  public logPname: LogPnameInfo;
928
928
  public jumpMiniPath: JumpEventReportInterFace.JumpMiniPath;
929
929
  public jumpWebUrl: JumpEventReportInterFace.jumpWebUrl;
930
930
  public sectionExposureInfo: object;
931
931
  public logPageIdInfo: any;
932
932
  public logPnameInfo: any;
933
933
  constructor(opt = {}) {
934
934
  this.logPageId = LogPageIdInfo.APP;
935
935
  this.logPageIdInfo = LogPageIdInfo;
936
936
  this.logPnameInfo = LogPnameInfo;
937
937
  this.jingGouMiniState = false;
938
938
  this.jumpMiniPath = JumpMiniPath;
939
939
  this.jumpWebUrl = JumpWebUrl;
940
940
  this.sectionExposureInfo = {};
941
941
  this.getConfig(opt);
942
942
  }
943
943
  getConfig(opt) {
944
944
  return Object.assign(this, {}, defaultConfig, opt);
945
945
  }
946
946
 
947
947
  updateInfo(routerInfo, logPname = LogPnameInfo.HOME, pageId = LogPageIdInfo.APP) {
948
948
  this.routerInfo = routerInfo;
949
949
  this.logPname = logPname;
950
950
  this.logPageId = pageId;
951
951
  }
952
952
  reportInfoPv(_pageId, _opt = {}) {}
953
953
 
954
954
  getShopIdOrVenderIdParams(
955
955
  params: JumpEventReportInterFace.ShopIdsInfo = {},
956
956
  ): JumpEventReportInterFace.ShopIdsInfo {
957
957
  const setParams = {};
958
958
  params.shopId && (setParams['shopId'] = `${params.shopId}`);
959
959
  params.venderId && (setParams['venderId'] = `${params.venderId}`);
960
960
  return setParams;
961
961
  }
962
962
 
963
963
  getShopIdsInfo(params = {}): JumpEventReportInterFace.ShopIdsInfo {
964
964
  let setParams = this.getShopIdOrVenderIdParams(params);
965
965
  setParams = {
966
966
  ...params,
967
967
  ...setParams,
968
968
  };
969
969
  return setParams;
970
970
  }
971
971
 
972
972
  jdJumpToShopHome(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
973
973
  console.log('[降级H5] jdJumpToShopHome base');
974
974
  const getInfo = Object.assign(
975
975
  {},
976
976
  {
977
977
  shopId: global.info.queryInfo.shopId,
978
978
  venderId: global.info.queryInfo.venderId,
979
979
  },
980
980
  shopInfo,
981
981
  );
982
982
  this.jdJumpToShopBase(getInfo);
983
983
  }
984
984
 
985
985
  jdJumpToShopHomeInner(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
986
986
  this.jdJumpToShopHome(shopInfo);
987
987
  }
988
988
 
989
989
  jdJumpToShopBase(shopInfo) {
990
990
  console.log('[降级H5] jdJumpToShopBase');
991
991
  this.jdNavigateToNative(
992
992
  `${this.jumpMiniPath.shop}?${objectToUrlEncode(this.getShopIdOrVenderIdParams(shopInfo))}`,
993
993
  {
994
994
  ...shopInfo,
995
995
  },
996
996
  );
997
997
  }
998
998
 
999
999
  jdJumpToShopLight(shopInfo) {
1000
1000
  this.jdNavigateToNative(
1001
1001
  `${this.jumpMiniPath.shopLight}?${objectToUrlEncode(
1002
1002
  this.getShopIdOrVenderIdParams(shopInfo),
1003
1003
  )}`,
1004
1004
  {
1005
1005
  ...shopInfo,
1006
1006
  },
1007
1007
  );
1008
1008
  }
1009
1009
 
1010
1010
  jdJumpToProduct(skuIds, logEventInfo) {
1011
1011
  skuIds = skuIds.toString().trim();
1012
1012
  const getSkuId = skuIds.indexOf(',') !== -1 ? skuIds.split(',')[0] : skuIds;
1013
1013
  this.jdNavigateToNative(`${this.jumpMiniPath.detail}?sku=${getSkuId}`, logEventInfo);
1014
1014
  }
1015
1015
 
1016
1016
  jdJumpSkuInfoToProduct(skuInfo: any = {}, logEventInfo) {
1017
1017
  const getSkuId = skuInfo?.skuId;
1018
1018
  getSkuId &&
1019
1019
  this.jdNavigateToNative(`${this.jumpMiniPath.detail}?sku=${getSkuId}`, logEventInfo);
1020
1020
  }
1021
1021
 
1022
1022
  jdJumpToFlashSaleTab(_logEventInfo) {
1023
1023
  console.log('跳转闪购', _logEventInfo);
1024
1024
  }
1025
1025
 
1026
1026
 
1027
1027
  jdJumpToShopMemberInfo(logEventInfo) {
1028
1028
  console.log('跳转修改会员信息页', logEventInfo);
1029
1029
  }
1030
1030
 
1031
1031
  jdJumpToShopMemberPointDetail(logEventInfo) {
1032
1032
  const venderId = global.info.queryInfo.venderId;
1033
1033
  const shopId = global.info.queryInfo.shopId;
1034
1034
  this.jdJumpToWeb(
1035
1035
  `${this.jumpWebUrl.memberScores}?venderId=${venderId}&shopId=${shopId}`,
1036
1036
  logEventInfo,
1037
1037
  );
1038
1038
  }
1039
1039
 
1040
1040
  jdJumpToShopMemberBenefit(logEventInfo) {
1041
1041
  const venderId = global.info.queryInfo.venderId;
1042
1042
  const shopId = global.info.queryInfo.shopId;
1043
1043
  this.jdJumpToWeb(
1044
1044
  `${this.jumpWebUrl.memberBenefit}?venderId=${venderId}&shopId=${shopId}`,
1045
1045
  logEventInfo,
1046
1046
  );
1047
1047
  }
1048
1048
 
1049
1049
  jdJumpToShopMemberRule(logEventInfo) {
1050
1050
  const venderId = global.info.queryInfo.venderId;
1051
1051
  const shopId = global.info.queryInfo.shopId;
1052
1052
  console.log('会员规则页h5 global.info', global.info);
1053
1053
  this.jdJumpToWeb(
1054
1054
  `${this.jumpWebUrl.shopMemberRule}?venderId=${venderId}&shopId=${shopId}&sign=member`,
1055
1055
  logEventInfo,
1056
1056
  );
1057
1057
  }
1058
1058
 
1059
1059
  jdJumpToShopMemberCloseAccount(venderType, logEventInfo) {
1060
1060
  const venderId = global.info.queryInfo.venderId;
1061
1061
  const shopId = global.info.queryInfo.shopId;
1062
1062
  console.log('注销会员页h5 global.info', global.info);
1063
1063
  this.jdJumpToWeb(
1064
1064
  `${this.jumpWebUrl.shopMemberCloseAccount}?venderId=${venderId}&shopId=${shopId}&venderType=${venderType}`,
1065
1065
  logEventInfo,
1066
1066
  );
1067
1067
  }
1068
1068
 
1069
1069
  jdJumpToShopMemberPointExchange(venderType, levelZeroMenuUrl, logEventInfo) {
1070
1070
  const venderId = global.info.queryInfo.venderId;
1071
1071
  const shopId = global.info.queryInfo.shopId;
1072
1072
  const channel = JUMP_MEMBER_CHANNEL.H5;
1073
1073
  this.jdJumpToWeb(
1074
1074
  `${this.jumpWebUrl.shopMemberPointExchange}?venderId=${venderId}&shopId=${shopId}&venderType=${venderType}&channel=${channel}&levelZeroMenuUrl=${levelZeroMenuUrl}`,
1075
1075
  logEventInfo,
1076
1076
  );
1077
1077
  }
1078
1078
 
1079
1079
  jdJumpToShopMemberBonusPurchase(customerLevel, logEventInfo) {
1080
1080
  const venderId = global.info.queryInfo.venderId;
1081
1081
  const shopId = global.info.queryInfo.shopId;
1082
1082
  this.jdJumpToWeb(
1083
1083
  `${this.jumpWebUrl.shopMemberBonusPurchase}?venderId=${venderId}&shopId=${shopId}&customerLevel=${customerLevel}`,
1084
1084
  logEventInfo,
1085
1085
  );
1086
1086
  }
1087
1087
 
1088
1088
  jdJumpToShopMemberGood(customerLevel, logEventInfo) {
1089
1089
  const venderId = global.info.queryInfo.venderId;
1090
1090
  const shopId = global.info.queryInfo.shopId;
1091
1091
  this.jdJumpToWeb(
1092
1092
  `${this.jumpWebUrl.shopMemberGood}?venderId=${venderId}&shopId=${shopId}&customerLevel=${customerLevel}`,
1093
1093
  logEventInfo,
1094
1094
  );
1095
1095
  }
1096
1096
 
1097
1097
  jdJumpToBeanDetail(logEventInfo) {
1098
1098
  console.log('this.jumpWebUrl.beanDetail', this.jumpWebUrl.beanDetail);
1099
1099
  this.jdJumpToWeb(`${this.jumpWebUrl.beanDetail}?source=dianpuhuiyuan`, logEventInfo);
1100
1100
  }
1101
1101
 
1102
1102
  jdJumpToMyRedEnvelope(logEventInfo) {
1103
1103
  this.jdJumpToWeb(this.jumpWebUrl.myRedPacketList, logEventInfo);
1104
1104
  }
1105
1105
 
1106
1106
  jdJumpToMyCoupon(logEventInfo) {
1107
1107
  this.jdJumpToWeb(this.jumpWebUrl.myCouponList, logEventInfo);
1108
1108
  }
1109
1109
 
1110
1110
  jdJumpToNewH5MemberCard(logEventInfo?) {
1111
1111
  const venderId = global.info.queryInfo.venderId;
1112
1112
  const shopId = global.info.queryInfo.shopId;
1113
1113
  this.jdJumpToWeb(
1114
1114
  `${this.jumpWebUrl.shopH5MemberCardM}?venderId=${venderId}&shopId=${shopId}`,
1115
1115
  logEventInfo,
1116
1116
  );
1117
1117
  }
1118
1118
 
1119
1119
 
1120
1120
  jdJumpToTabAllProduct(shopId, venderId, logEventInfo = {}) {
1121
1121
  console.log('base.ts - jdJumpToTabAllProduct');
1122
1122
  if (typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId;
1123
1123
  if (typeof venderId === 'undefined') venderId = global.info.queryInfo.venderId;
1124
1124
  this.jdJumpToWeb(
1125
1125
  `${this.jumpWebUrl.pages}?shopId=${shopId}&venderId=${venderId}&tabActive=home-product`,
1126
1126
  logEventInfo,
1127
1127
  );
1128
1128
  }
1129
1129
 
1130
1130
  jdJumpToTabAllProductInner(shopId, venderId, logEventInfo = {}) {
1131
1131
  if (typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId;
1132
1132
  if (typeof venderId === 'undefined') venderId = global.info.queryInfo.venderId;
1133
1133
  this.jdJumpToTabAllProduct(shopId, venderId, logEventInfo);
1134
1134
  }
1135
1135
 
1136
1136
  jdJumpToTopTabBase(type, shopInfo = {}) {
1137
1137
  const getInfo = Object.assign(
1138
1138
  {},
1139
1139
  {
1140
1140
  shopId: global.info.queryInfo.shopId,
1141
1141
  venderId: global.info.queryInfo.venderId,
1142
1142
  },
1143
1143
  shopInfo,
1144
1144
  );
1145
1145
  this.jdJumpToWeb(
1146
1146
  `${this.jumpWebUrl.shopHome}?${objectToUrlEncode(
1147
1147
  this.getShopIdOrVenderIdParams(getInfo),
1148
1148
  )}&tabActive=${type}`,
1149
1149
  getInfo,
1150
1150
  );
1151
1151
  }
1152
1152
 
1153
1153
  jdJumpToTabNew(shopInfo = {}) {
1154
1154
  console.log('上新tab');
1155
1155
  this.jdJumpToTopTabBase(
1156
1156
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_NEW_PRODUCT],
1157
1157
  shopInfo,
1158
1158
  );
1159
1159
  }
1160
1160
 
1161
1161
  jdJumpToTabNewInner(shopInfo = {}) {
1162
1162
  this.jdJumpToTabNew(shopInfo);
1163
1163
  }
1164
1164
 
1165
1165
  jdJumpToTabRank(shopInfo = {}) {
1166
1166
  console.log('榜单tab');
1167
1167
  this.jdJumpToTopTabBase(SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_RANK], shopInfo);
1168
1168
  }
1169
1169
  jdJumpToTabRankInner(shopInfo = {}) {
1170
1170
  this.jdJumpToTabRank(shopInfo);
1171
1171
  }
1172
1172
  jdJumpToTabBuyerShow(shopInfo = {}) {
1173
1173
  console.log('买家秀tab');
1174
1174
  this.jdJumpToTopTabBase(
1175
1175
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_BUYER_SHOW],
1176
1176
  shopInfo,
1177
1177
  );
1178
1178
  }
1179
1179
  jdJumpToTabBuyerShowInner(shopInfo = {}) {
1180
1180
  this.jdJumpToTabBuyerShow(shopInfo);
1181
1181
  }
1182
1182
  jdJumpToTabActivity(shopInfo = {}) {
1183
1183
  console.log('活动tab');
1184
1184
  this.jdJumpToTopTabBase(
1185
1185
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_ACTIVITY],
1186
1186
  shopInfo,
1187
1187
  );
1188
1188
  }
1189
1189
  jdJumpToTabActivityInner(shopInfo = {}) {
1190
1190
  this.jdJumpToTabActivity(shopInfo);
1191
1191
  }
1192
1192
  jdJumpToTabSecKill(shopInfo = {}) {
1193
1193
  console.log('秒杀tab');
1194
1194
  this.jdJumpToTopTabBase(
1195
1195
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_SECKILL],
1196
1196
  shopInfo,
1197
1197
  );
1198
1198
  }
1199
1199
  jdJumpToTabSecKillInner(shopInfo = {}) {
1200
1200
  this.jdJumpToTabSecKill(shopInfo);
1201
1201
  }
1202
1202
 
1203
1203
  jdJumpToBottomTabBase(type, shopInfo = {}) {
1204
1204
  this.jdJumpToTopTabBase(type, shopInfo);
1205
1205
  }
1206
1206
  jdJumpToBottomTabProduct(shopInfo = {}) {
1207
1207
  this.jdJumpToBottomTabBase(SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.PRODUCT], shopInfo);
1208
1208
  }
1209
1209
  jdJumpToBottomTabCategory(shopInfo = {}) {
1210
1210
  this.jdJumpToBottomTabBase(SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.CLASSIFY], shopInfo);
1211
1211
  }
1212
1212
  jdJumpToBottomTabFind(shopInfo = {}) {
1213
1213
  console.log('发现tab');
1214
1214
  }
1215
1215
  jdJumpToBottomTabBrandMember(shopInfo = {}) {
1216
1216
  const getInfo = Object.assign(
1217
1217
  {},
1218
1218
  {
1219
1219
  shopId: global.info.queryInfo.shopId,
1220
1220
  venderId: global.info.queryInfo.venderId,
1221
1221
  },
1222
1222
  shopInfo,
1223
1223
  );
1224
1224
  this.jdJumpToWeb(
1225
1225
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(this.getShopIdOrVenderIdParams(getInfo))}`,
1226
1226
  getInfo,
1227
1227
  );
1228
1228
  }
1229
1229
  jdJumpToBottomTabBrandMemberInner(shopInfo = {}) {
1230
1230
  this.jdJumpToBottomTabBrandMember(shopInfo);
1231
1231
  }
1232
1232
 
1233
1233
  jdJumpToAppHome(logEventInfo) {
1234
1234
  this.jdJumpToWeb(`${this.jumpWebUrl.mobileHome}?originReferer=shopx`, logEventInfo);
1235
1235
  }
1236
1236
 
1237
1237
  jdJumpToShopSearch(queryParams) {
1238
1238
  const getInfo = Object.assign(
1239
1239
  {},
1240
1240
  {
1241
1241
  shopId: global.info.queryInfo.shopId,
1242
1242
  venderId: global.info.queryInfo.venderId,
1243
1243
  },
1244
1244
  queryParams,
1245
1245
  );
1246
1246
  const {
1247
1247
  shopId,
1248
1248
  categoryId,
1249
1249
  keyword,
1250
1250
  pageId,
1251
1251
  description,
1252
1252
  shopName,
1253
1253
  keyWord,
1254
1254
  seller_actId,
1255
1255
  seller_actType,
1256
1256
  } = getInfo;
1257
1257
  const cateId = categoryId
1258
1258
  ? `&cateId=${typeof categoryId === 'string' ? categoryId?.trim() : categoryId}`
1259
1259
  : '';
1260
1260
  const addKeyWord = keyword || keyWord ? `&keyword=${keyword || keyWord}` : '';
1261
1261
  const addPageId = pageId ? `&pageId=${pageId}` : '';
1262
1262
  const searchDes = description ? `&description=${description}` : '';
1263
1263
  const shopNameDes = shopName ? `&shopName=${shopName}` : '';
1264
1264
  const searchType = categoryId ? 5 : keyword || keyWord ? 4 : 3;
1265
1265
  const activityId = seller_actId ? `&activityId=${seller_actId}` : '';
1266
1266
  const activityType = seller_actType ? `&activityType=${seller_actType}` : '';
1267
1267
  this.jdJumpToWeb(
1268
1268
  `${this.jumpWebUrl.shopSearch}?shopId=${shopId}&searchType=${searchType}${cateId}${addKeyWord}${addPageId}${searchDes}${shopNameDes}${activityId}${activityType}`,
1269
1269
  getInfo,
1270
1270
  );
1271
1271
  }
1272
1272
 
1273
1273
  jdJumpToSearch(shopId, suggestWord) {
1274
1274
  console.log('搜索中间页');
1275
1275
  }
1276
1276
 
1277
1277
  jdJumpToOrderList() {
1278
1278
  console.warn('触发基类的jdJumpToOrderList,这不是一个期望的结果,应该调用各端子类来实现');
1279
1279
  }
1280
1280
 
1281
1281
  jdJumpToCouponSearchProductList(couponId, logEventInfo = {}) {
1282
1282
  this.jdJumpToWeb(
1283
1283
  `${this.jumpWebUrl.couponSearch}?couponbatch=${couponId}&sceneval=2`,
1284
1284
  logEventInfo,
1285
1285
  );
1286
1286
  }
1287
1287
 
1288
1288
  jdJumpToWeb(
1289
1289
  spUrl,
1290
1290
  logEventInfo,
1291
1291
  successBack?: functionType | undefined,
1292
1292
  failBack?: functionType | undefined,
1293
1293
  ) {
1294
1294
  this.jdNavigateToNative(
1295
1295
  `${this.jumpMiniPath.h5}?encode_url=` + encodeURIComponent(spUrl),
1296
1296
  {
1297
1297
  ...logEventInfo,
1298
1298
  },
1299
1299
  successBack,
1300
1300
  failBack,
1301
1301
  );
1302
1302
  }
1303
1303
 
1304
1304
  jdJumpToWebInner(url, logEventInfo) {
1305
1305
  this.jdJumpToWeb(url, logEventInfo);
1306
1306
  }
1307
1307
 
1308
1308
  weappRedirectToWeb(url: string, logEventInfo: JumpEventReportInterFace.OptEventLogParams = {}) {
1309
1309
  console.log('weappRedirectToWeb base:', url, logEventInfo);
1310
1310
  }
1311
1311
 
1312
1312
  jdJumpToLive(liveInfo, logEventInfo = {}) {
1313
1313
  if (liveInfo?.liveId) {
1314
1314
  this.jdJumpToWeb(`${this.jumpWebUrl.mLive}/${liveInfo?.liveId}?origin=30`, logEventInfo);
1315
1315
  }
1316
1316
  }
1317
1317
 
1318
1318
  jdJumpToUgcContent(urlObj, logEventInfo = {}) {
1319
1319
  if (typeof urlObj === 'object') {
1320
1320
  this.jdJumpToWeb(
1321
1321
  `${this.jumpWebUrl.shopUseShareOrderUgcContent}?${objectToUrlEncode(urlObj)}`,
1322
1322
  { logEventInfo },
1323
1323
  );
1324
1324
  } else {
1325
1325
  const getShopUgcParams = this.jdOpenAppParams(urlObj);
1326
1326
  console.log('getShopUgcParams=====', getShopUgcParams);
1327
1327
  if (getShopUgcParams) {
1328
1328
  getShopUgcParams['category'] && delete getShopUgcParams['category'];
1329
1329
  getShopUgcParams['des'] && delete getShopUgcParams['des'];
1330
1330
  this.jdJumpToWeb(
1331
1331
  `${this.jumpWebUrl.shopUseShareOrderUgcContent}?${objectToUrlEncode(
1332
1332
  getShopUgcParams as object,
1333
1333
  )}`,
1334
1334
  { logEventInfo },
1335
1335
  );
1336
1336
  }
1337
1337
  }
1338
1338
  }
1339
1339
 
1340
1340
  jdJumpToShopActivity(shopInfo) {
1341
1341
  const getParams = Object.assign(
1342
1342
  {},
1343
1343
  {
1344
1344
  category: 'jump',
1345
1345
  des: 'jshopActivity',
1346
1346
  shopId: global.info.queryInfo.shopId,
1347
1347
  venderId: global.info.queryInfo.venderId,
1348
1348
  },
1349
1349
  shopInfo,
1350
1350
  );
1351
1351
  getParams['projectId'] && (getParams['projectId'] = `${getParams['projectId']}`);
1352
1352
  }
1353
1353
 
1354
1354
  jdJumpToShopMember(shopInfo) {
1355
1355
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo);
1356
1356
  this.jdJumpToWeb(`${this.jumpWebUrl.shopMember}?${objectToUrlEncode(getShopInfo)}`, shopInfo);
1357
1357
  }
1358
1358
 
1359
1359
  jdJumpToMemberTab(shopInfo?) {
1360
1360
  console.log('店内跳转会员tab', shopInfo);
1361
1361
  }
1362
1362
 
1363
1363
  jdJumpToShopMemberCard(shopInfo) {
1364
1364
  const { logEventInfo } = shopInfo;
1365
1365
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo);
1366
1366
  this.jdJumpToWeb(
1367
1367
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(getShopInfo)}`,
1368
1368
  logEventInfo,
1369
1369
  );
1370
1370
  }
1371
1371
 
1372
1372
  jdJumpToTotalPromotion(shopInfo) {
1373
1373
  const { url, logEventInfo } = shopInfo;
1374
1374
  if (this.isOpenJdAppUrl(url)) {
1375
1375
  const getOpenAppParams: any = this.jdOpenAppParams(url);
1376
1376
  if (getOpenAppParams) {
1377
1377
  if (getOpenAppParams?.activityId) {
1378
1378
  this.jdJumpToWeb(
1379
1379
  `${this.jumpWebUrl.totalPromotion}?activity_id=${getOpenAppParams?.activityId}`,
1380
1380
  shopInfo,
1381
1381
  );
1382
1382
  }
1383
1383
  }
1384
1384
  } else {
1385
1385
  this.jdJumpToWeb(url, logEventInfo);
1386
1386
  }
1387
1387
  }
1388
1388
 
1389
1389
  jdJumpToDongDongChatGroup(groupId, source = 'jdmini') {
1390
1390
  console.warn(
1391
1391
  'JdJumpToDongDongChatGroup method is invoked, but should be implemented in subclasses',
1392
1392
  );
1393
1393
  }
1394
1394
 
1395
1395
  jdJumpToDongDongChat(paramInfo) {
1396
1396
  const getInfo = Object.assign(
1397
1397
  {},
1398
1398
  {
1399
1399
  venderId: global.info.queryInfo.venderId,
1400
1400
  },
1401
1401
  paramInfo,
1402
1402
  );
1403
1403
  const { venderId = '1', entry = 'm_shop', ...otherInfo } = getInfo;
1404
1404
  const dongdongUrl = `${this.jumpWebUrl.dongDongChat}?venderId=${venderId}&entry=${entry}&sceneval=2`;
1405
1405
  this.jdJumpToWeb(dongdongUrl, otherInfo);
1406
1406
  }
1407
1407
 
1408
1408
  jdJumpToShopDetail(shopInfo) {
1409
1409
  const getInfo = Object.assign(
1410
1410
  {},
1411
1411
  {
1412
1412
  shopId: global.info.queryInfo.shopId,
1413
1413
  venderId: global.info.queryInfo.venderId,
1414
1414
  },
1415
1415
  shopInfo,
1416
1416
  );
1417
1417
  const getShopInfo = this.getShopIdOrVenderIdParams(getInfo);
1418
1418
  this.jdJumpToWeb(`${this.jumpWebUrl.shopIntroduce}?${objectToUrlEncode(getShopInfo)}`, getInfo);
1419
1419
  }
1420
1420
 
1421
1421
  jdJumpToShopLottery(shopTotalInfo) {
1422
1422
  const getInfo = Object.assign(
1423
1423
  {},
1424
1424
  {
1425
1425
  shopId: global.info.queryInfo.shopId,
1426
1426
  venderId: global.info.queryInfo.venderId,
1427
1427
  },
1428
1428
  shopTotalInfo,
1429
1429
  );
1430
1430
  const getShopInfo = this.getShopIdOrVenderIdParams(getInfo);
1431
1431
  this.jdJumpToWeb(`${this.jumpWebUrl.shopLottery}?${objectToUrlEncode(getShopInfo)}`, getInfo);
1432
1432
  }
1433
1433
 
1434
1434
  jdJumpToSageAuthorHome(shopTotalInfo) {
1435
1435
  const { logEventInfo, ...otherParams } = shopTotalInfo;
1436
1436
  const getInfo = Object.assign(
1437
1437
  {},
1438
1438
  {
1439
1439
  channel: 'shopHomePage',
1440
1440
  selectTab: '0',
1441
1441
  },
1442
1442
  otherParams,
1443
1443
  );
1444
1444
  this.jdJumpToWeb(`${this.jumpWebUrl.sageAuthorHome}?${objectToUrlEncode(getInfo)}`, {
1445
1445
  ...getInfo,
1446
1446
  ...logEventInfo,
1447
1447
  });
1448
1448
  }
1449
1449
 
1450
1450
  jdJumpToMiniProgram({ appId, path, param = {} }: JumpEventReportInterFace.LinkMiniParams) {
1451
1451
  const pageName = param['pageType'] || 'home';
1452
1452
  path = `pages/${pageName}/index`;
1453
1453
  if (appId === global.info.pageInfo?.appId) {
1454
1454
  Taro.navigateTo({
1455
1455
  url: `/${path}?${objectToUrlEncode(param)}`,
1456
1456
  }).catch((err) => {
1457
1457
  console.warn('跳转小程序页面错误:', err);
1458
1458
  });
1459
1459
  } else {
1460
1460
  console.log('一个小程序跳转到另一个小程序暂无此业务');
1461
1461
  }
1462
1462
  }
1463
1463
 
1464
1464
  jdJumpToAppMiniProgram(
1465
1465
  path: string,
1466
1466
  param = {},
1467
1467
  successBack?: functionType,
1468
1468
  failBack?: functionType,
1469
1469
  ) {
1470
1470
  this.jdNavigateToNative(path, param, successBack, failBack);
1471
1471
  }
1472
1472
 
1473
1473
  jdJumpConfigUrl(detail, logEventInfo = {}) {
1474
1474
  const { configDataType, configDataValue } = detail;
1475
1475
  switch (configDataType) {
1476
1476
  case LinkConfigType.CONFIG_TYPE_SKU_LIST:
1477
1477
  if (logEventInfo?.jsonParam?.logBaseInfo?.mInfo) {
1478
1478
  logEventInfo.jsonParam.logBaseInfo.mInfo.skuid = configDataValue.skuIds;
1479
1479
  }
1480
1480
  this.jdJumpToProduct(configDataValue.skuIds, logEventInfo);
1481
1481
  break;
1482
1482
  case LinkConfigType.CONFIG_TYPE_COUPON_LIST:
1483
1483
  this.jdJumpToWeb(
1484
1484
  `${this.jumpWebUrl.shopCoupon}?couponType=1&shopId=${global.info.queryInfo.shopId}&venderId=${global.info.queryInfo.venderId}`,
1485
1485
  logEventInfo,
1486
1486
  );
1487
1487
  break;
1488
1488
  case LinkConfigType.CONFIG_TYPE_CATEGORY:
1489
1489
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1490
1490
  const getShopSearchParams = this.jdOpenAppParams(configDataValue.clickUrl);
1491
1491
  getShopSearchParams &&
1492
1492
  this.jdJumpToShopSearch(
1493
1493
  Object.assign({}, getShopSearchParams, {
1494
1494
  logEventInfo,
1495
1495
  }),
1496
1496
  );
1497
1497
  } else {
1498
1498
  this.jdJumpToShopSearch(
1499
1499
  configDataValue['cid']
1500
1500
  ? Object.assign(
1501
1501
  {},
1502
1502
  {
1503
1503
  shopId: global.info.queryInfo.shopId,
1504
1504
  categoryId: configDataValue.cid,
1505
1505
  logEventInfo,
1506
1506
  },
1507
1507
  )
1508
1508
  : {
1509
1509
  shopId: global.info.queryInfo.shopId,
1510
1510
  logEventInfo,
1511
1511
  },
1512
1512
  );
1513
1513
  }
1514
1514
  break;
1515
1515
  case LinkConfigType.CONFIG_TYPE_MEMBER:
1516
1516
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1517
1517
  const getShopMemberParams = this.jdOpenAppParams(configDataValue.clickUrl);
1518
1518
  getShopMemberParams &&
1519
1519
  this.jdJumpToShopMember(
1520
1520
  Object.assign({}, getShopMemberParams, {
1521
1521
  logEventInfo,
1522
1522
  }),
1523
1523
  );
1524
1524
  } else {
1525
1525
  this.jdJumpToShopMember({
1526
1526
  shopId: global.info.queryInfo.shopId,
1527
1527
  venderId: configDataValue.shopDetail,
1528
1528
  logEventInfo,
1529
1529
  });
1530
1530
  }
1531
1531
  break;
1532
1532
  case LinkConfigType.CONFIG_TYPE_SHOP_ACTIVITY:
1533
1533
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1534
1534
  const getShopActivityParams = this.jdOpenAppParams(configDataValue.clickUrl);
1535
1535
  getShopActivityParams &&
1536
1536
  this.jdJumpToShopActivity(
1537
1537
  Object.assign({}, getShopActivityParams, {
1538
1538
  logEventInfo,
1539
1539
  }),
1540
1540
  );
1541
1541
  } else if (configDataValue['projectId']) {
1542
1542
  this.jdJumpToShopActivity({
1543
1543
  projectId: configDataValue['projectId'],
1544
1544
  configDataValue,
1545
1545
  logEventInfo,
1546
1546
  });
1547
1547
  }
1548
1548
  break;
1549
1549
  case LinkConfigType.CONFIG_TYPE_CUSTOM_LINK:
1550
1550
  case LinkConfigType.CONFIG_TYPE_FINANCE_COUPON: {
1551
1551
  const _url = configDataValue.linkUrl;
1552
1552
  if (
1553
1553
  _url.indexOf('to=') === -1 &&
1554
1554
  _url.indexOf(`${domain.mshop.replace(/https?:/, '')}/?shopId=`) !== -1
1555
1555
  ) {
1556
1556
  const _shopId = _url.match(/\d+/g)[0];
1557
1557
  this.jdJumpToShopHome({
1558
1558
  shopId: `${_shopId}`,
1559
1559
  logEventInfo,
1560
1560
  });
1561
1561
  } else if (this.isOpenJdAppUrl(_url)) {
1562
1562
  const getOpenAppParams = this.jdOpenAppParams(_url);
1563
1563
  console.log('获取解析后的参数结果', getOpenAppParams);
1564
1564
  if (getOpenAppParams) {
1565
1565
  isJdApp
1566
1566
  ? this.jdNavigateToNative(
1567
1567
  Object.assign({}, getOpenAppParams, {
1568
1568
  logEventInfo,
1569
1569
  }),
1570
1570
  )
1571
1571
  : this.jdNavigateToNative(
1572
1572
  '',
1573
1573
  Object.assign({}, getOpenAppParams, {
1574
1574
  logEventInfo,
1575
1575
  }),
1576
1576
  );
1577
1577
  } else {
1578
1578
  this.jdNavigateToNative(
1579
1579
  '',
1580
1580
  Object.assign({}, getOpenAppParams, {
1581
1581
  logEventInfo,
1582
1582
  }),
1583
1583
  );
1584
1584
  }
1585
1585
  } else {
1586
1586
  this.jdJumpToWeb(_url, logEventInfo);
1587
1587
  }
1588
1588
  break;
1589
1589
  }
1590
1590
  case LinkConfigType.CONFIG_TYPE_JSHOP_DETAIL:
1591
1591
  this.jdJumpToShopDetail({
1592
1592
  venderId: global.info.queryInfo.venderId,
1593
1593
  shopId: global.info.queryInfo.shopId,
1594
1594
  logEventInfo,
1595
1595
  });
1596
1596
  break;
1597
1597
  case LinkConfigType.CONFIG_TYPE_SHOP_HOME:
1598
1598
  this.jdJumpToShopHome({
1599
1599
  ...configDataValue,
1600
1600
  logEventInfo,
1601
1601
  });
1602
1602
  break;
1603
1603
  case LinkConfigType.CONFIG_TYPE_ANCHOR_POINT:
1604
1604
  break;
1605
1605
  case LinkConfigType.CONFIG_TYPE_SHOPPING_GUIDE:
1606
1606
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1607
1607
  const getShoppingGuideParams = this.jdOpenAppParams(configDataValue.clickUrl);
1608
1608
  getShoppingGuideParams &&
1609
1609
  this.jdJumpToShopActivity(
1610
1610
  Object.assign({}, getShoppingGuideParams, {
1611
1611
  logEventInfo,
1612
1612
  }),
1613
1613
  );
1614
1614
  }
1615
1615
  break;
1616
1616
  case LinkConfigType.CONFIG_TYPE_MINI_PROGRAM: {
1617
1617
  const linkUrl = decodeURIComponent(configDataValue?.linkUrl || '');
1618
1618
  const search = linkUrl.match(/\?.+/);
1619
1619
  if (search) {
1620
1620
  const miniQueryData: JumpEventReportInterFace.LinkMiniParams =
1621
1621
  parseQueryUrlString(linkUrl);
1622
1622
  try {
1623
1623
  miniQueryData.param = JSON.parse(<string>miniQueryData?.param);
1624
1624
  } catch (e) {
1625
1625
  console.warn('解析小程序 param 错误:', miniQueryData.param);
1626
1626
  }
1627
1627
  this.jdJumpToMiniProgram(miniQueryData);
1628
1628
  } else {
1629
1629
  console.warn('小程序地址错误:', linkUrl);
1630
1630
  }
1631
1631
  break;
1632
1632
  }
1633
1633
  case LinkConfigType.CONFIG_TYPE_SHOP_SEARCH: {
1634
1634
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1635
1635
  const getShopSearchParams = this.jdOpenAppParams(configDataValue.clickUrl);
1636
1636
  console.log('base 获取店铺结果落地页链接解析后的参数结果', getShopSearchParams);
1637
1637
  getShopSearchParams &&
1638
1638
  this.jdJumpToShopSearch(
1639
1639
  Object.assign({}, getShopSearchParams, {
1640
1640
  logEventInfo,
1641
1641
  }),
1642
1642
  );
1643
1643
  } else {
1644
1644
  this.jdJumpToWeb(configDataValue.clickUrl, logEventInfo);
1645
1645
  }
1646
1646
  break;
1647
1647
  }
1648
1648
  default:
1649
1649
  }
1650
1650
  }
1651
1651
 
1652
1652
  jdOpenAppParams(openAppUrl): object | boolean {
1653
1653
  let getParams: boolean | object = false;
1654
1654
  if (this.isOpenJdAppUrl(openAppUrl)) {
1655
1655
  try {
1656
1656
  getParams = openAppUrl.replace(/openApp\.jdMobile:\/\/virtual\?params=/i, '');
1657
1657
  getParams = JSON.parse(String(getParams));
1658
1658
  } catch (e) {
1659
1659
  console.log(e);
1660
1660
  }
1661
1661
  }
1662
1662
  return getParams;
1663
1663
  }
1664
1664
  isOpenJdAppUrl(openAppUrl) {
1665
1665
  return /openApp\.jdMobile:\/\/virtual\?params=/i.test(openAppUrl);
1666
1666
  }
1667
1667
 
1668
1668
  creatParamToLogStr(eventParam) {
1669
1669
  return eventParam
1670
1670
  ? Object.keys(eventParam)
1671
1671
  .map((key) => {
1672
1672
  return `${key}_${eventParam[key]}`;
1673
1673
  })
1674
1674
  .join('_')
1675
1675
  : '';
1676
1676
  }
1677
1677
 
1678
1678
  jdNavigateToNative(
1679
1679
  url: string,
1680
1680
  params: {
1681
1681
  logEventInfo?: object;
1682
1682
  } = {},
1683
1683
  successBack?: functionType | undefined,
1684
1684
  failBack?: functionType | undefined,
1685
1685
  ) {
1686
1686
  const { logEventInfo } = params;
1687
1687
  const getEparam = logEventInfo || params;
1688
1688
  console.log('jdNavigateToNative params: ', params);
1689
1689
  console.log('logEventInfo params: ', logEventInfo);
1690
1690
  try {
1691
1691
  this.clickEventLog(getEparam);
1692
1692
  } catch (e) {
1693
1693
  console.log(e);
1694
1694
  }
1695
1695
  setTimeout(() => {
1696
1696
  Taro.navigateTo({
1697
1697
  url,
1698
1698
  })
1699
1699
  .then((res) => {
1700
1700
  typeof successBack === 'function' && successBack(res);
1701
1701
  console.log('navigateToWxapp.success', res);
1702
1702
  })
1703
1703
  .catch((err) => {
1704
1704
  typeof failBack === 'function' && failBack(err);
1705
1705
  console.log('navigateToWxapp.fail', err);
1706
1706
  });
1707
1707
  }, 200);
1708
1708
  }
1709
1709
 
1710
1710
  clickEventLog(opts: JumpEventReportInterFace.OptEventLogParams = {}, clickKey = 'click') {
1711
1711
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts;
1712
1712
  if (eventId && jsonParam) {
1713
1713
  const { etModelInfo, logBaseInfo } = jsonParam;
1714
1714
  let getJsonParam = logBaseInfo || jsonParam;
1715
1715
  if (etModelInfo && logBaseInfo) {
1716
1716
  getJsonParam = logBaseInfo;
1717
1717
  } else {
1718
1718
  if (Array.isArray(jsonParam)) {
1719
1719
  getJsonParam = jsonParam;
1720
1720
  } else {
1721
1721
  getJsonParam = Object.assign(
1722
1722
  {},
1723
1723
  {
1724
1724
  shopid: global.info.queryInfo?.shopId,
1725
1725
  },
1726
1726
  jsonParam,
1727
1727
  );
1728
1728
  }
1729
1729
  }
1730
1730
  const miniClickKey = clickKey === 'addToCart' ? 'addToCart' : 'click';
1731
1731
  const miniLogParams = {
1732
1732
  eid: eventId,
1733
1733
  elevel: eventLevel,
1734
1734
  ext: JSON.stringify(getJsonParam),
1735
1735
  etModel: JSON.stringify(etModelInfo || {}),
1736
1736
  pname: this.logPname,
1737
1737
  pparam: JSON.stringify(this.routerInfo.params),
1738
1738
  target: this.routerInfo.path,
1739
1739
  event: this.nativeEvent,
1740
1740
  pageId: this.logPageId,
1741
1741
  ...otherParams,
1742
1742
  };
1743
1743
  console.log('点击埋点参数对象', miniLogParams, miniClickKey);
1744
1744
  global.miniAppLogInstance && global.miniAppLogInstance[miniClickKey](miniLogParams);
1745
1745
  }
1746
1746
  }
1747
1747
 
1748
1748
  exposureEventLog(opts: JumpEventReportInterFace.OptEventLogParams = {}) {
1749
1749
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts;
1750
1750
  if (eventId && jsonParam) {
1751
1751
  const { etModelInfo, logBaseInfo } = jsonParam;
1752
1752
  let getJsonParam = {};
1753
1753
  if (etModelInfo && logBaseInfo) {
1754
1754
  getJsonParam = logBaseInfo;
1755
1755
  } else {
1756
1756
  if (Array.isArray(jsonParam)) {
1757
1757
  getJsonParam = jsonParam;
1758
1758
  } else {
1759
1759
  getJsonParam = Object.assign(
1760
1760
  {},
1761
1761
  {
1762
1762
  shopid: global.info.queryInfo?.shopId,
1763
1763
  },
1764
1764
  jsonParam,
1765
1765
  );
1766
1766
  }
1767
1767
  }
1768
1768
  const miniLogParams = {
1769
1769
  eid: eventId,
1770
1770
  elevel: eventLevel,
1771
1771
  ext: JSON.stringify(getJsonParam),
1772
1772
  etModel: JSON.stringify(etModelInfo || {}),
1773
1773
  pname: this.logPname,
1774
1774
  pparam: JSON.stringify(this.routerInfo.params),
1775
1775
  target: this.routerInfo.path,
1776
1776
  pageId: this.logPageId,
1777
1777
  ...otherParams,
1778
1778
  };
1779
1779
  global.miniAppLogInstance && global.miniAppLogInstance['exposure'](miniLogParams);
1780
1780
  }
1781
1781
  }
1782
1782
 
1783
1783
  initOpenTriggerExposure(type) {
1784
1784
  if (!this.sectionExposureInfo[type]) {
1785
1785
  Taro.nextTick(() => {
1786
1786
  setTimeout(() => {
1787
1787
  global.info.pageInfo.isExposureState = true;
1788
1788
  taroEventInitExposure();
1789
1789
  this.sectionExposureInfo[`${type}`] = true;
1790
1790
  }, 200);
1791
1791
  });
1792
1792
  }
1793
1793
  }