@conecli/cone-render 0.8.28 → 0.8.30

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 (48) hide show
  1. package/dist/api/index.ts +1 -1
  2. package/dist/common/const.ts +1 -1
  3. package/dist/common/index.h5.ts +1 -1
  4. package/dist/common/token/index.h5.ts +1 -1
  5. package/dist/common/token/token.ts +1 -1
  6. package/dist/components/base/CommonFloorHead/index.module.scss +1 -1
  7. package/dist/components/base/CommonFloorHead/index.tsx +1 -1
  8. package/dist/components/base/CustomVideo/index.module.scss +3 -2
  9. package/dist/components/base/CustomVideo/index.tsx +1 -1
  10. package/dist/components/base/Dialog/index.module.scss +6 -2
  11. package/dist/components/base/Dialog/index.tsx +1 -1
  12. package/dist/components/base/InOrOutViewObserver/index.tsx +1 -1
  13. package/dist/components/base/NetworkDataError/index.tsx +1 -1
  14. package/dist/components/base/Price/{const.ts → Base/const.ts} +0 -0
  15. package/dist/components/base/Price/Base/index.module.scss +136 -0
  16. package/dist/components/base/Price/Base/index.tsx +1 -0
  17. package/dist/components/base/Price/Double/index.module.scss +158 -0
  18. package/dist/components/base/Price/Double/index.tsx +1 -0
  19. package/dist/components/base/Price/index.tsx +1 -1
  20. package/dist/components/floorItem.weapp.tsx +1 -1
  21. package/dist/interface/component.ts +1 -1
  22. package/dist/interface/jumpEventReport.ts +1 -1
  23. package/dist/interface/service.ts +1 -1
  24. package/dist/jumpEventReport/base.ts +1 -1
  25. package/dist/jumpEventReport/const.ts +1 -1
  26. package/dist/jumpEventReport/jdJumpJdApp.ts +1 -1
  27. package/dist/jumpEventReport/jumpUrlConfig/base.ts +1 -1
  28. package/dist/jumpEventReport/logEventConfig.ts +1 -1
  29. package/dist/jumpEventReport/web/report.ts +1 -1
  30. package/dist/jumpEventReport/web.base.ts +1 -1
  31. package/dist/open/api/shopMember.ts +1 -1
  32. package/dist/service/bMallConst.ts +1 -1
  33. package/dist/service/bMallConst.wxapp.ts +1 -0
  34. package/dist/service/http/colorSign.ts +1 -1
  35. package/dist/service/http/colorSign.wxapp.ts +1 -0
  36. package/dist/service/http/const.ts +1 -1
  37. package/dist/service/requestServer.ts +1 -1
  38. package/dist/utils/connectNativeJsBridge.ts +1 -1
  39. package/dist/utils/h5Utils.ts +1 -1
  40. package/dist/utils/index.h5.ts +1 -1
  41. package/dist/utils/index.ts +1 -1
  42. package/dist/utils/index.weapp.ts +1 -1
  43. package/dist/utils/jm-common.js +1 -1
  44. package/dist/utils/memberFormatUtils.js +1 -0
  45. package/dist/utils/priceUtils.js +1 -0
  46. package/dist/utils/utils.ts +1 -1
  47. package/package.json +3 -3
  48. package/dist/components/base/Price/index.module.scss +0 -136
@@ -1 +1 @@
1
- import Taro from '@tarojs/taro'
2
1
  routerInfo: {
3
2
  params: {},
4
3
  },
5
4
  nativeEvent: null,
6
5
  logPageParamStr: '',
7
6
  implements JumpEventReportInterFace.JumpEventReportInit
8
7
  public jingGouMiniState: boolean
9
8
  public logPageId: string
10
9
  public logPageParamStr: string
11
10
  public nativeEvent: any
12
11
  public routerInfo: JumpEventReportInterFace.RouterInfo
13
12
  public logPname: LogPnameInfo
14
13
  public jumpMiniPath: JumpEventReportInterFace.JumpMiniPath
15
14
  public jumpWebUrl: JumpEventReportInterFace.jumpWebUrl
16
15
  public sectionExposureInfo: object
17
16
  constructor(opt = {}) {
18
17
  this.logPageId = LogPageIdInfo.APP
19
18
  this.jingGouMiniState = false
20
19
  this.jumpMiniPath = JumpMiniPath
21
20
  this.jumpWebUrl = JumpWebUrl
22
21
  this.sectionExposureInfo = {}
23
22
  this.getConfig(opt)
24
23
  }
25
24
  getConfig(opt) {
26
25
  return Object.assign(this, {}, defaultConfig, opt)
27
26
  }
28
27
 
29
28
  updateInfo(
30
29
  routerInfo,
31
30
  logPname = LogPnameInfo.HOME,
32
31
  pageId = LogPageIdInfo.APP,
33
32
  ) {
34
33
  this.routerInfo = routerInfo
35
34
  this.logPname = logPname
36
35
  this.logPageId = pageId
37
36
  }
38
37
  reportInfoPv(_pageId, _opt = {}) {}
39
38
 
40
39
  getShopIdOrVenderIdParams(
41
40
  params: JumpEventReportInterFace.ShopIdsInfo = {},
42
41
  ): JumpEventReportInterFace.ShopIdsInfo {
43
42
  const setParams = {}
44
43
  params.shopId && (setParams['shopId'] = `${params.shopId}`)
45
44
  params.venderId && (setParams['venderId'] = `${params.venderId}`)
46
45
  return setParams
47
46
  }
48
47
 
49
48
  getShopIdsInfo(params = {}): JumpEventReportInterFace.ShopIdsInfo {
50
49
  let setParams = this.getShopIdOrVenderIdParams(params)
51
50
  setParams = {
52
51
  ...params,
53
52
  ...setParams,
54
53
  }
55
54
  return setParams
56
55
  }
57
56
 
58
57
  jdJumpToShopHome(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
59
58
  console.log('[降级H5] jdJumpToShopHome base')
60
59
  this.jdJumpToShopBase(shopInfo)
61
60
  }
62
61
 
63
62
  jdJumpToShopBase(shopInfo) {
64
63
  console.log('[降级H5] jdJumpToShopBase')
65
64
  this.jdNavigateToNative(
66
65
  `${this.jumpMiniPath.shop}?${objectToUrlEncode(
67
66
  this.getShopIdOrVenderIdParams(shopInfo),
68
67
  )}`,
69
68
  {
70
69
  ...shopInfo,
71
70
  },
72
71
  )
73
72
  }
74
73
 
75
74
  jdJumpToShopLight(shopInfo) {
76
75
  this.jdNavigateToNative(
77
76
  `${this.jumpMiniPath.shopLight}?${objectToUrlEncode(
78
77
  this.getShopIdOrVenderIdParams(shopInfo),
79
78
  )}`,
80
79
  {
81
80
  ...shopInfo,
82
81
  },
83
82
  )
84
83
  }
85
84
 
86
85
  jdJumpToProduct(skuIds, logEventInfo) {
87
86
  skuIds = skuIds.toString().trim()
88
87
  const getSkuId = skuIds.indexOf(',') !== -1 ? skuIds.split(',')[0] : skuIds
89
88
  this.jdNavigateToNative(
90
89
  `${this.jumpMiniPath.detail}?sku=${getSkuId}`,
91
90
  logEventInfo,
92
91
  )
93
92
  }
94
93
 
95
94
  jdJumpToFlashSaleTab(_logEventInfo) {
96
95
  console.log('跳转闪购', _logEventInfo)
97
96
  }
98
97
 
99
98
 
100
99
  jdJumpToShopMemberInfo(logEventInfo) {
101
100
  console.log('跳转修改会员信息页', logEventInfo)
102
101
  }
103
102
 
104
103
  jdJumpToShopMemberPointDetail(logEventInfo) {
105
104
  const venderId = global.info.queryInfo.venderId
106
105
  const shopId = global.info.queryInfo.shopId
107
106
  this.jdJumpToWeb(
108
107
  `${this.jumpWebUrl.shopMemberPointDetail}?venderId=${venderId}&shopId=${shopId}`,
109
108
  logEventInfo,
110
109
  )
111
110
  }
112
111
 
113
112
  jdJumpToShopMemberBenefit(logEventInfo) {
114
113
  const venderId = global.info.queryInfo.venderId
115
114
  const shopId = global.info.queryInfo.shopId
116
115
  this.jdJumpToWeb(
117
116
  `${this.jumpWebUrl.shopMemberBenefit}?venderId=${venderId}&shopId=${shopId}`,
118
117
  logEventInfo,
119
118
  )
120
119
  }
121
120
 
122
121
  jdJumpToShopMemberRule(logEventInfo) {
123
122
  const venderId = global.info.queryInfo.venderId
124
123
  const shopId = global.info.queryInfo.shopId
125
124
  console.log('会员规则页h5 global.info', global.info)
126
125
  this.jdJumpToWeb(
127
126
  `${this.jumpWebUrl.shopMemberRule}?venderId=${venderId}&shopId=${shopId}&sign=member`,
128
127
  logEventInfo,
129
128
  )
130
129
  }
131
130
 
132
131
  jdJumpToShopMemberCloseAccount(venderType, logEventInfo) {
133
132
  const venderId = global.info.queryInfo.venderId
134
133
  const shopId = global.info.queryInfo.shopId
135
134
  console.log('注销会员页h5 global.info', global.info)
136
135
  this.jdJumpToWeb(
137
136
  `${this.jumpWebUrl.shopMemberCloseAccount}?venderId=${venderId}&shopId=${shopId}&venderType=${venderType}`,
138
137
  logEventInfo,
139
138
  )
140
139
  }
141
140
 
142
141
  jdJumpToShopMemberPointExchange(venderType, levelZeroMenuUrl, logEventInfo) {
143
142
  const venderId = global.info.queryInfo.venderId
144
143
  const shopId = global.info.queryInfo.shopId
145
144
  const channel = CHANNEL.h5
146
145
  this.jdJumpToWeb(
147
146
  `${this.jumpWebUrl.shopMemberPointExchange}?venderId=${venderId}&shopId=${shopId}&venderType=${venderType}&channel=${channel}&levelZeroMenuUrl=${levelZeroMenuUrl}`,
148
147
  logEventInfo,
149
148
  )
150
149
  }
151
150
 
152
151
  jdJumpToShopMemberBonusPurchase(customerLevel, logEventInfo) {
153
152
  const venderId = global.info.queryInfo.venderId
154
153
  const shopId = global.info.queryInfo.shopId
155
154
  this.jdJumpToWeb(
156
155
  `${this.jumpWebUrl.shopMemberBonusPurchase}?venderId=${venderId}&shopId=${shopId}`,
157
156
  logEventInfo,
158
157
  )
159
158
  }
160
159
 
161
160
  jdJumpToShopMemberGood(customerLevel, logEventInfo) {
162
161
  const venderId = global.info.queryInfo.venderId
163
162
  const shopId = global.info.queryInfo.shopId
164
163
  this.jdJumpToWeb(
165
164
  `${this.jumpWebUrl.shopMemberGood}?venderId=${venderId}&shopId=${shopId}&customerLevel=${customerLevel}`,
166
165
  logEventInfo,
167
166
  )
168
167
  }
169
168
 
170
169
  jdJumpToBeanDetail(logEventInfo) {
171
170
  console.log('this.jumpWebUrl.beanDetail', this.jumpWebUrl.beanDetail)
172
171
  this.jdJumpToWeb(
173
172
  `${this.jumpWebUrl.beanDetail}?source=dianpuhuiyuan`,
174
173
  logEventInfo,
175
174
  )
176
175
  }
177
176
 
178
177
  jdJumpToMyRedEnvelope(logEventInfo) {
179
178
  console.log('跳转红包页', logEventInfo)
180
179
  }
181
180
 
182
181
  jdJumpToMyCoupon(logEventInfo) {
183
182
  console.log('跳转优惠券页', logEventInfo)
184
183
  }
185
184
 
186
185
 
187
186
  jdJumpToTabAllProduct(shopId, venderId, logEventInfo = {}) {
188
187
  this.jdJumpToWeb(
189
188
  `${this.jumpWebUrl.pages}?shopId=${shopId}&venderId=${venderId}&tabActive=home-product`,
190
189
  logEventInfo,
191
190
  )
192
191
  }
193
192
 
194
193
  jdJumpToTabAllProductInner(shopId, venderId, logEventInfo = {}) {
195
194
  this.jdJumpToTabAllProduct(shopId, venderId, logEventInfo)
196
195
  }
197
196
 
198
197
  jdJumpToAppHome(logEventInfo) {
199
198
  this.jdJumpToWeb(
200
199
  `${this.jumpWebUrl.mobileHome}?originReferer=shopx`,
201
200
  logEventInfo,
202
201
  )
203
202
  }
204
203
 
205
204
  jdJumpToShopSearch(queryParams) {
206
205
  const { shopId, categoryId, keyword, pageId, description, shopName } =
207
206
  queryParams
208
207
  const cateId = categoryId ? `&cateId=${categoryId}` : ''
209
208
  const addKeyWord = keyword ? `&keyword=${keyword}` : ''
210
209
  const addPageId = pageId ? `&pageId=${pageId}` : ''
211
210
  const searchDes = description ? `&description=${description}` : ''
212
211
  const shopNameDes = shopName ? `&shopName=${shopName}` : ''
213
212
  const searchType = categoryId ? 5 : keyword ? 4 : 3
214
213
  this.jdJumpToWeb(
215
214
  `${this.jumpWebUrl.shopSearch}?shopId=${shopId}&searchType=${searchType}${cateId}${addKeyWord}${addPageId}${searchDes}${shopNameDes}`,
216
215
  queryParams,
217
216
  )
218
217
  }
219
218
 
220
219
  jdJumpToOrderList() {
221
220
  console.warn(
222
221
  '触发基类的jdJumpToOrderList,这不是一个期望的结果,应该调用各端子类来实现',
223
222
  )
224
223
  }
225
224
 
226
225
  jdJumpToCouponSearchProductList(couponId, logEventInfo = {}) {
227
226
  this.jdJumpToWeb(
228
227
  `${this.jumpWebUrl.couponSearch}?couponbatch=${couponId}&sceneval=2`,
229
228
  logEventInfo,
230
229
  )
231
230
  }
232
231
 
233
232
  jdJumpToWeb(
234
233
  spUrl,
235
234
  logEventInfo,
236
235
  successBack?: Function | undefined,
237
236
  failBack?: Function | undefined,
238
237
  ) {
239
238
  this.jdNavigateToNative(
240
239
  `${this.jumpMiniPath.h5}?encode_url=` + encodeURIComponent(spUrl),
241
240
  {
242
241
  ...logEventInfo,
243
242
  },
244
243
  successBack,
245
244
  failBack,
246
245
  )
247
246
  }
248
247
 
249
248
  jdJumpToWebInner(url, logEventInfo) {
250
249
  this.jdJumpToWeb(url, logEventInfo)
251
250
  }
252
251
 
253
252
  weappRedirectToWeb(
254
253
  url: string,
255
254
  logEventInfo: JumpEventReportInterFace.OptEventLogParams = {},
256
255
  ) {
257
256
  console.log('weappRedirectToWeb base:', url)
258
257
  }
259
258
 
260
259
  jdJumpToLive(liveInfo, logEventInfo = {}) {
261
260
  if (liveInfo?.liveId) {
262
261
  this.jdJumpToWeb(
263
262
  `${this.jumpWebUrl.mLive}/${liveInfo?.liveId}?origin=30`,
264
263
  logEventInfo,
265
264
  )
266
265
  }
267
266
  }
268
267
 
269
268
  jdJumpToUgcContent(urlObj, logEventInfo = {}) {
270
269
  if (typeof urlObj === 'object') {
271
270
  this.jdJumpToWeb(
272
271
  `${this.jumpWebUrl.shopUseShareOrderUgcContent}?${objectToUrlEncode(
273
272
  urlObj,
274
273
  )}`,
275
274
  { logEventInfo },
276
275
  )
277
276
  } else {
278
277
  const getShopUgcParams = this.jdOpenAppParams(urlObj)
279
278
  console.log('getShopUgcParams=====', getShopUgcParams)
280
279
  if (getShopUgcParams) {
281
280
  getShopUgcParams['category'] && delete getShopUgcParams['category']
282
281
  getShopUgcParams['des'] && delete getShopUgcParams['des']
283
282
  this.jdJumpToWeb(
284
283
  `${this.jumpWebUrl.shopUseShareOrderUgcContent}?${objectToUrlEncode(
285
284
  getShopUgcParams as Object,
286
285
  )}`,
287
286
  { logEventInfo },
288
287
  )
289
288
  }
290
289
  }
291
290
  }
292
291
 
293
292
  jdJumpToShopActivity(shopInfo) {
294
293
  const getParams = Object.assign(
295
294
  {},
296
295
  {
297
296
  category: 'jump',
298
297
  des: 'jshopActivity',
299
298
  shopId: global.info.queryInfo.shopId,
300
299
  venderId: global.info.queryInfo.venderId,
301
300
  },
302
301
  shopInfo,
303
302
  )
304
303
  getParams['projectId'] &&
305
304
  (getParams['projectId'] = `${getParams['projectId']}`)
306
305
  }
307
306
 
308
307
  jdJumpToShopMember(shopInfo) {
309
308
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
310
309
  this.jdJumpToWeb(
311
310
  `${this.jumpWebUrl.wqShopMember}?${objectToUrlEncode(getShopInfo)}`,
312
311
  shopInfo,
313
312
  )
314
313
  }
315
314
 
316
315
  jdJumpToShopMemberCard(shopInfo) {
317
316
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
318
317
  this.jdJumpToWeb(
319
318
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(getShopInfo)}`,
320
319
  shopInfo,
321
320
  )
322
321
  }
323
322
 
324
323
  jdJumpToTotalPromotion(shopInfo) {
325
324
  const { url, logEventInfo } = shopInfo
326
325
  if (this.isOpenJdAppUrl(url)) {
327
326
  const getOpenAppParams: any = this.jdOpenAppParams(url)
328
327
  if (getOpenAppParams) {
329
328
  if (getOpenAppParams?.activityId) {
330
329
  this.jdJumpToWeb(
331
330
  `${this.jumpWebUrl.totalPromotion}?activity_id=${getOpenAppParams?.activityId}`,
332
331
  shopInfo,
333
332
  )
334
333
  }
335
334
  }
336
335
  } else {
337
336
  this.jdJumpToWeb(url, logEventInfo)
338
337
  }
339
338
  }
340
339
 
341
340
  jdJumpToDongDongChat(paramInfo) {
342
341
  const { venderId = '1', entry = 'm_shop', ...otherInfo } = paramInfo
343
342
  const dongdongUrl = `${this.jumpWebUrl.dongDongChat}?venderId=${venderId}&entry=${entry}&sceneval=2`
344
343
  this.jdJumpToWeb(dongdongUrl, otherInfo)
345
344
  }
346
345
 
347
346
  jdJumpToShopDetail(shopInfo) {
348
347
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
349
348
  this.jdJumpToWeb(
350
349
  `${this.jumpWebUrl.shopIntroduce}?${objectToUrlEncode(getShopInfo)}`,
351
350
  shopInfo,
352
351
  )
353
352
  }
354
353
 
355
354
  jdJumpToMiniProgram({
356
355
  appId,
357
356
  path,
358
357
  param = {},
359
358
  }: JumpEventReportInterFace.LinkMiniParams) {
360
359
  const pageName = param['pageType'] || 'home'
361
360
  path = `pages/${pageName}/index`
362
361
  if (appId === global.info.pageInfo?.appId) {
363
362
  Taro.navigateTo({
364
363
  url: `/${path}?${objectToUrlEncode(param)}`,
365
364
  }).catch((err) => {
366
365
  console.warn('跳转小程序页面错误:', err)
367
366
  })
368
367
  } else {
369
368
  console.log('一个小程序跳转到另一个小程序暂无此业务')
370
369
  }
371
370
  }
372
371
 
373
372
  jdJumpToAppMiniProgram(
374
373
  path: string,
375
374
  param = {},
376
375
  successBack?: Function,
377
376
  failBack?: Function,
378
377
  ) {
379
378
  this.jdNavigateToNative(path, param, successBack, failBack)
380
379
  }
381
380
 
382
381
  jdJumpConfigUrl(detail, logEventInfo = {}) {
383
382
  const { configDataType, configDataValue } = detail
384
383
  switch (configDataType) {
385
384
  case LinkConfigType.CONFIG_TYPE_SKU_LIST:
386
385
  this.jdJumpToProduct(configDataValue.skuIds, logEventInfo)
387
386
  break
388
387
  case LinkConfigType.CONFIG_TYPE_COUPON_LIST:
389
388
  this.jdJumpToWeb(
390
389
  `${this.jumpWebUrl.shopCoupon}?couponType=1&shopId=${global.info.queryInfo.shopId}&venderId=${global.info.queryInfo.venderId}`,
391
390
  logEventInfo,
392
391
  )
393
392
  break
394
393
  case LinkConfigType.CONFIG_TYPE_CATEGORY:
395
394
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
396
395
  const getShopSearchParams = this.jdOpenAppParams(
397
396
  configDataValue.clickUrl,
398
397
  )
399
398
  getShopSearchParams &&
400
399
  this.jdJumpToShopSearch(
401
400
  Object.assign({}, getShopSearchParams, {
402
401
  logEventInfo,
403
402
  }),
404
403
  )
405
404
  } else {
406
405
  this.jdJumpToShopSearch(
407
406
  configDataValue['cid']
408
407
  ? Object.assign(
409
408
  {},
410
409
  {
411
410
  shopId: global.info.queryInfo.shopId,
412
411
  categoryId: configDataValue.cid,
413
412
  logEventInfo,
414
413
  },
415
414
  )
416
415
  : {
417
416
  shopId: global.info.queryInfo.shopId,
418
417
  logEventInfo,
419
418
  },
420
419
  )
421
420
  }
422
421
  break
423
422
  case LinkConfigType.CONFIG_TYPE_MEMBER:
424
423
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
425
424
  const getShopMemberParams = this.jdOpenAppParams(
426
425
  configDataValue.clickUrl,
427
426
  )
428
427
  getShopMemberParams &&
429
428
  this.jdJumpToShopMember(
430
429
  Object.assign({}, getShopMemberParams, {
431
430
  logEventInfo,
432
431
  }),
433
432
  )
434
433
  } else {
435
434
  this.jdJumpToShopMember({
436
435
  shopId: global.info.queryInfo.shopId,
437
436
  venderId: configDataValue.shopDetail,
438
437
  logEventInfo,
439
438
  })
440
439
  }
441
440
  break
442
441
  case LinkConfigType.CONFIG_TYPE_SHOP_ACTIVITY:
443
442
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
444
443
  const getShopActivityParams = this.jdOpenAppParams(
445
444
  configDataValue.clickUrl,
446
445
  )
447
446
  getShopActivityParams &&
448
447
  this.jdJumpToShopActivity(
449
448
  Object.assign({}, getShopActivityParams, {
450
449
  logEventInfo,
451
450
  }),
452
451
  )
453
452
  } else if (configDataValue['projectId']) {
454
453
  this.jdJumpToShopActivity({
455
454
  projectId: configDataValue['projectId'],
456
455
  configDataValue,
457
456
  logEventInfo,
458
457
  })
459
458
  }
460
459
  break
461
460
  case LinkConfigType.CONFIG_TYPE_CUSTOM_LINK:
462
461
  case LinkConfigType.CONFIG_TYPE_FINANCE_COUPON: {
463
462
  const _url = configDataValue.linkUrl
464
463
  if (
465
464
  _url.indexOf('to=') === -1 &&
466
465
  _url.indexOf(`${domain.mshop.replace(/https?:/, '')}/?shopId=`) !== -1
467
466
  ) {
468
467
  const _shopId = _url.match(/\d+/g)[0]
469
468
  this.jdJumpToShopHome({
470
469
  shopId: `${_shopId}`,
471
470
  logEventInfo,
472
471
  })
473
472
  } else if (this.isOpenJdAppUrl(_url)) {
474
473
  const getOpenAppParams = this.jdOpenAppParams(_url)
475
474
  console.log('获取解析后的参数结果', getOpenAppParams)
476
475
  if (getOpenAppParams) {
477
476
  isJdApp
478
477
  ? this.jdNavigateToNative(
479
478
  Object.assign({}, getOpenAppParams, {
480
479
  logEventInfo,
481
480
  }),
482
481
  )
483
482
  : this.jdNavigateToNative(
484
483
  '',
485
484
  Object.assign({}, getOpenAppParams, {
486
485
  logEventInfo,
487
486
  }),
488
487
  )
489
488
  } else {
490
489
  this.jdNavigateToNative(
491
490
  '',
492
491
  Object.assign({}, getOpenAppParams, {
493
492
  logEventInfo,
494
493
  }),
495
494
  )
496
495
  }
497
496
  } else {
498
497
  this.jdJumpToWeb(_url, logEventInfo)
499
498
  }
500
499
  break
501
500
  }
502
501
  case LinkConfigType.CONFIG_TYPE_JSHOP_DETAIL:
503
502
  this.jdJumpToShopDetail({
504
503
  venderId: global.info.queryInfo.venderId,
505
504
  shopId: global.info.queryInfo.shopId,
506
505
  logEventInfo,
507
506
  })
508
507
  break
509
508
  case LinkConfigType.CONFIG_TYPE_SHOP_HOME:
510
509
  this.jdJumpToShopHome({
511
510
  ...configDataValue,
512
511
  logEventInfo,
513
512
  })
514
513
  break
515
514
  case LinkConfigType.CONFIG_TYPE_ANCHOR_POINT:
516
515
  break
517
516
  case LinkConfigType.CONFIG_TYPE_SHOPPING_GUIDE:
518
517
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
519
518
  const getShoppingGuideParams = this.jdOpenAppParams(
520
519
  configDataValue.clickUrl,
521
520
  )
522
521
  getShoppingGuideParams &&
523
522
  this.jdJumpToShopActivity(
524
523
  Object.assign({}, getShoppingGuideParams, {
525
524
  logEventInfo,
526
525
  }),
527
526
  )
528
527
  }
529
528
  break
530
529
  case LinkConfigType.CONFIG_TYPE_MINI_PROGRAM: {
531
530
  const linkUrl = decodeURIComponent(configDataValue?.linkUrl || '')
532
531
  const search = linkUrl.match(/\?.+/)
533
532
  if (search) {
534
533
  const miniQueryData: JumpEventReportInterFace.LinkMiniParams =
535
534
  parseQueryUrlString(linkUrl)
536
535
  try {
537
536
  miniQueryData.param = JSON.parse(<string>miniQueryData?.param)
538
537
  } catch (e) {
539
538
  console.warn('解析小程序 param 错误:', miniQueryData.param)
540
539
  }
541
540
  this.jdJumpToMiniProgram(miniQueryData)
542
541
  } else {
543
542
  console.warn('小程序地址错误:', linkUrl)
544
543
  }
545
544
  break
546
545
  }
547
546
  default:
548
547
  }
549
548
  }
550
549
 
551
550
  jdOpenAppParams(openAppUrl): Object | boolean {
552
551
  let getParams: boolean | Object = false
553
552
  if (this.isOpenJdAppUrl(openAppUrl)) {
554
553
  try {
555
554
  getParams = openAppUrl.replace(
556
555
  /openApp\.jdMobile:\/\/virtual\?params=/i,
557
556
  '',
558
557
  )
559
558
  getParams = JSON.parse(String(getParams))
560
559
  } catch (e) {
561
560
  console.log(e)
562
561
  }
563
562
  }
564
563
  return getParams
565
564
  }
566
565
  isOpenJdAppUrl(openAppUrl) {
567
566
  return /openApp\.jdMobile:\/\/virtual\?params=/i.test(openAppUrl)
568
567
  }
569
568
 
570
569
  creatParamToLogStr(eventParam) {
571
570
  return eventParam
572
571
  ? Object.keys(eventParam)
573
572
  .map((key) => {
574
573
  return `${key}_${eventParam[key]}`
575
574
  })
576
575
  .join('_')
577
576
  : ''
578
577
  }
579
578
 
580
579
  jdNavigateToNative(
581
580
  url: string,
582
581
  params: {
583
582
  logEventInfo?: object
584
583
  } = {},
585
584
  successBack?: Function | undefined,
586
585
  failBack?: Function | undefined,
587
586
  ) {
588
587
  const { logEventInfo } = params
589
588
  const getEparam = logEventInfo || params
590
589
  console.log('jdNavigateToNative params: ', params)
591
590
  console.log('logEventInfo params: ', logEventInfo)
592
591
  try {
593
592
  this.clickEventLog(getEparam)
594
593
  } catch (e) {
595
594
  console.log(e)
596
595
  }
597
596
  setTimeout(() => {
598
597
  Taro.navigateTo({
599
598
  url,
600
599
  })
601
600
  .then((res) => {
602
601
  typeof successBack === 'function' && successBack(res)
603
602
  console.log('navigateToWxapp.success', res)
604
603
  })
605
604
  .catch((err) => {
606
605
  typeof failBack === 'function' && failBack(err)
607
606
  console.log('navigateToWxapp.fail', err)
608
607
  })
609
608
  }, 200)
610
609
  }
611
610
 
612
611
  clickEventLog(
613
612
  opts: JumpEventReportInterFace.OptEventLogParams = {},
614
613
  clickKey = 'click',
615
614
  ) {
616
615
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts
617
616
  if (eventId && jsonParam) {
618
617
  const { etModelInfo, logBaseInfo } = jsonParam
619
618
  const miniClickKey = clickKey === 'addToCart' ? 'addToCart' : 'click'
620
619
  const miniLogParams = {
621
620
  eid: eventId,
622
621
  elevel: eventLevel,
623
622
  ext: JSON.stringify(logBaseInfo || jsonParam),
624
623
  etModel: JSON.stringify(etModelInfo || {}),
625
624
  pname: this.logPname,
626
625
  pparam: JSON.stringify(this.routerInfo.params),
627
626
  target: this.routerInfo.path,
628
627
  event: this.nativeEvent,
629
628
  pageId: this.logPageId,
630
629
  ...otherParams,
631
630
  }
632
631
  console.log('点击埋点参数对象', miniLogParams, miniClickKey)
633
632
  global.miniAppLogInstance &&
634
633
  global.miniAppLogInstance[miniClickKey](miniLogParams)
635
634
  }
636
635
  }
637
636
 
638
637
  exposureEventLog(opts: JumpEventReportInterFace.OptEventLogParams = {}) {
639
638
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts
640
639
  if (eventId && jsonParam) {
641
640
  const { etModelInfo, logBaseInfo } = jsonParam
642
641
  const miniLogParams = {
643
642
  eid: eventId,
644
643
  elevel: eventLevel,
645
644
  ext: JSON.stringify(logBaseInfo || jsonParam),
646
645
  etModel: JSON.stringify(etModelInfo || {}),
647
646
  pname: this.logPname,
648
647
  pparam: JSON.stringify(this.routerInfo.params),
649
648
  target: this.routerInfo.path,
650
649
  pageId: this.logPageId,
651
650
  ...otherParams,
652
651
  }
653
652
  global.miniAppLogInstance &&
654
653
  global.miniAppLogInstance['exposure'](miniLogParams)
655
654
  }
656
655
  }
657
656
 
658
657
  initOpenTriggerExposure(type) {
659
658
  if (!this.sectionExposureInfo[type]) {
660
659
  Taro.nextTick(() => {
661
660
  setTimeout(() => {
662
661
  global.info.pageInfo.isExposureState = true
663
662
  taroEventInitExposure()
664
663
  this.sectionExposureInfo[`${type}`] = true
665
664
  }, 200)
666
665
  })
667
666
  }
668
667
  }
668
+ import Taro from '@tarojs/taro'
669
669
  routerInfo: {
670
670
  params: {},
671
671
  },
672
672
  nativeEvent: null,
673
673
  logPageParamStr: '',
674
674
  implements JumpEventReportInterFace.JumpEventReportInit
675
675
  public jingGouMiniState: boolean
676
676
  public logPageId: string
677
677
  public logPageParamStr: string
678
678
  public nativeEvent: any
679
679
  public routerInfo: JumpEventReportInterFace.RouterInfo
680
680
  public logPname: LogPnameInfo
681
681
  public jumpMiniPath: JumpEventReportInterFace.JumpMiniPath
682
682
  public jumpWebUrl: JumpEventReportInterFace.jumpWebUrl
683
683
  public sectionExposureInfo: object
684
684
  constructor(opt = {}) {
685
685
  this.logPageId = LogPageIdInfo.APP
686
686
  this.jingGouMiniState = false
687
687
  this.jumpMiniPath = JumpMiniPath
688
688
  this.jumpWebUrl = JumpWebUrl
689
689
  this.sectionExposureInfo = {}
690
690
  this.getConfig(opt)
691
691
  }
692
692
  getConfig(opt) {
693
693
  return Object.assign(this, {}, defaultConfig, opt)
694
694
  }
695
695
 
696
696
  updateInfo(
697
697
  routerInfo,
698
698
  logPname = LogPnameInfo.HOME,
699
699
  pageId = LogPageIdInfo.APP,
700
700
  ) {
701
701
  this.routerInfo = routerInfo
702
702
  this.logPname = logPname
703
703
  this.logPageId = pageId
704
704
  }
705
705
  reportInfoPv(_pageId, _opt = {}) {}
706
706
 
707
707
  getShopIdOrVenderIdParams(
708
708
  params: JumpEventReportInterFace.ShopIdsInfo = {},
709
709
  ): JumpEventReportInterFace.ShopIdsInfo {
710
710
  const setParams = {}
711
711
  params.shopId && (setParams['shopId'] = `${params.shopId}`)
712
712
  params.venderId && (setParams['venderId'] = `${params.venderId}`)
713
713
  return setParams
714
714
  }
715
715
 
716
716
  getShopIdsInfo(params = {}): JumpEventReportInterFace.ShopIdsInfo {
717
717
  let setParams = this.getShopIdOrVenderIdParams(params)
718
718
  setParams = {
719
719
  ...params,
720
720
  ...setParams,
721
721
  }
722
722
  return setParams
723
723
  }
724
724
 
725
725
  jdJumpToShopHome(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
726
726
  console.log('[降级H5] jdJumpToShopHome base')
727
727
  this.jdJumpToShopBase(shopInfo)
728
728
  }
729
729
 
730
730
  jdJumpToShopBase(shopInfo) {
731
731
  console.log('[降级H5] jdJumpToShopBase')
732
732
  this.jdNavigateToNative(
733
733
  `${this.jumpMiniPath.shop}?${objectToUrlEncode(
734
734
  this.getShopIdOrVenderIdParams(shopInfo),
735
735
  )}`,
736
736
  {
737
737
  ...shopInfo,
738
738
  },
739
739
  )
740
740
  }
741
741
 
742
742
  jdJumpToShopLight(shopInfo) {
743
743
  this.jdNavigateToNative(
744
744
  `${this.jumpMiniPath.shopLight}?${objectToUrlEncode(
745
745
  this.getShopIdOrVenderIdParams(shopInfo),
746
746
  )}`,
747
747
  {
748
748
  ...shopInfo,
749
749
  },
750
750
  )
751
751
  }
752
752
 
753
753
  jdJumpToProduct(skuIds, logEventInfo) {
754
754
  skuIds = skuIds.toString().trim()
755
755
  const getSkuId = skuIds.indexOf(',') !== -1 ? skuIds.split(',')[0] : skuIds
756
756
  this.jdNavigateToNative(
757
757
  `${this.jumpMiniPath.detail}?sku=${getSkuId}`,
758
758
  logEventInfo,
759
759
  )
760
760
  }
761
761
 
762
762
  jdJumpToFlashSaleTab(_logEventInfo) {
763
763
  console.log('跳转闪购', _logEventInfo)
764
764
  }
765
765
 
766
766
 
767
767
  jdJumpToShopMemberInfo(logEventInfo) {
768
768
  console.log('跳转修改会员信息页', logEventInfo)
769
769
  }
770
770
 
771
771
  jdJumpToShopMemberPointDetail(logEventInfo) {
772
772
  const venderId = global.info.queryInfo.venderId
773
773
  const shopId = global.info.queryInfo.shopId
774
774
  this.jdJumpToWeb(
775
775
  `${this.jumpWebUrl.shopMemberPointDetail}?venderId=${venderId}&shopId=${shopId}`,
776
776
  logEventInfo,
777
777
  )
778
778
  }
779
779
 
780
780
  jdJumpToShopMemberBenefit(logEventInfo) {
781
781
  const venderId = global.info.queryInfo.venderId
782
782
  const shopId = global.info.queryInfo.shopId
783
783
  this.jdJumpToWeb(
784
784
  `${this.jumpWebUrl.shopMemberBenefit}?venderId=${venderId}&shopId=${shopId}`,
785
785
  logEventInfo,
786
786
  )
787
787
  }
788
788
 
789
789
  jdJumpToShopMemberRule(logEventInfo) {
790
790
  const venderId = global.info.queryInfo.venderId
791
791
  const shopId = global.info.queryInfo.shopId
792
792
  console.log('会员规则页h5 global.info', global.info)
793
793
  this.jdJumpToWeb(
794
794
  `${this.jumpWebUrl.shopMemberRule}?venderId=${venderId}&shopId=${shopId}&sign=member`,
795
795
  logEventInfo,
796
796
  )
797
797
  }
798
798
 
799
799
  jdJumpToShopMemberCloseAccount(venderType, logEventInfo) {
800
800
  const venderId = global.info.queryInfo.venderId
801
801
  const shopId = global.info.queryInfo.shopId
802
802
  console.log('注销会员页h5 global.info', global.info)
803
803
  this.jdJumpToWeb(
804
804
  `${this.jumpWebUrl.shopMemberCloseAccount}?venderId=${venderId}&shopId=${shopId}&venderType=${venderType}`,
805
805
  logEventInfo,
806
806
  )
807
807
  }
808
808
 
809
809
  jdJumpToShopMemberPointExchange(venderType, levelZeroMenuUrl, logEventInfo) {
810
810
  const venderId = global.info.queryInfo.venderId
811
811
  const shopId = global.info.queryInfo.shopId
812
812
  const channel = JUMP_MEMBER_CHANNEL.H5
813
813
  this.jdJumpToWeb(
814
814
  `${this.jumpWebUrl.shopMemberPointExchange}?venderId=${venderId}&shopId=${shopId}&venderType=${venderType}&channel=${channel}&levelZeroMenuUrl=${levelZeroMenuUrl}`,
815
815
  logEventInfo,
816
816
  )
817
817
  }
818
818
 
819
819
  jdJumpToShopMemberBonusPurchase(customerLevel, logEventInfo) {
820
820
  const venderId = global.info.queryInfo.venderId
821
821
  const shopId = global.info.queryInfo.shopId
822
822
  this.jdJumpToWeb(
823
823
  `${this.jumpWebUrl.shopMemberBonusPurchase}?venderId=${venderId}&shopId=${shopId}`,
824
824
  logEventInfo,
825
825
  )
826
826
  }
827
827
 
828
828
  jdJumpToShopMemberGood(customerLevel, logEventInfo) {
829
829
  const venderId = global.info.queryInfo.venderId
830
830
  const shopId = global.info.queryInfo.shopId
831
831
  this.jdJumpToWeb(
832
832
  `${this.jumpWebUrl.shopMemberGood}?venderId=${venderId}&shopId=${shopId}&customerLevel=${customerLevel}`,
833
833
  logEventInfo,
834
834
  )
835
835
  }
836
836
 
837
837
  jdJumpToBeanDetail(logEventInfo) {
838
838
  console.log('this.jumpWebUrl.beanDetail', this.jumpWebUrl.beanDetail)
839
839
  this.jdJumpToWeb(
840
840
  `${this.jumpWebUrl.beanDetail}?source=dianpuhuiyuan`,
841
841
  logEventInfo,
842
842
  )
843
843
  }
844
844
 
845
845
  jdJumpToMyRedEnvelope(logEventInfo) {
846
846
  console.log('跳转红包页', logEventInfo)
847
847
  }
848
848
 
849
849
  jdJumpToMyCoupon(logEventInfo) {
850
850
  console.log('跳转优惠券页', logEventInfo)
851
851
  }
852
852
 
853
853
  jdJumpToNewH5MemberCard(logEventInfo?) {
854
854
  const venderId = global.info.queryInfo.venderId
855
855
  const shopId = global.info.queryInfo.shopId
856
856
  this.jdJumpToWeb(
857
857
  `${this.jumpWebUrl.shopH5MemberCardM}?venderId=${venderId}&shopId=${shopId}`,
858
858
  logEventInfo,
859
859
  )
860
860
  }
861
861
 
862
862
 
863
863
  jdJumpToTabAllProduct(shopId, venderId, logEventInfo = {}) {
864
864
  this.jdJumpToWeb(
865
865
  `${this.jumpWebUrl.pages}?shopId=${shopId}&venderId=${venderId}&tabActive=home-product`,
866
866
  logEventInfo,
867
867
  )
868
868
  }
869
869
 
870
870
  jdJumpToTabAllProductInner(shopId, venderId, logEventInfo = {}) {
871
871
  this.jdJumpToTabAllProduct(shopId, venderId, logEventInfo)
872
872
  }
873
873
 
874
874
  jdJumpToAppHome(logEventInfo) {
875
875
  this.jdJumpToWeb(
876
876
  `${this.jumpWebUrl.mobileHome}?originReferer=shopx`,
877
877
  logEventInfo,
878
878
  )
879
879
  }
880
880
 
881
881
  jdJumpToShopSearch(queryParams) {
882
882
  const { shopId, categoryId, keyword, pageId, description, shopName } =
883
883
  queryParams
884
884
  const cateId = categoryId ? `&cateId=${categoryId}` : ''
885
885
  const addKeyWord = keyword ? `&keyword=${keyword}` : ''
886
886
  const addPageId = pageId ? `&pageId=${pageId}` : ''
887
887
  const searchDes = description ? `&description=${description}` : ''
888
888
  const shopNameDes = shopName ? `&shopName=${shopName}` : ''
889
889
  const searchType = categoryId ? 5 : keyword ? 4 : 3
890
890
  this.jdJumpToWeb(
891
891
  `${this.jumpWebUrl.shopSearch}?shopId=${shopId}&searchType=${searchType}${cateId}${addKeyWord}${addPageId}${searchDes}${shopNameDes}`,
892
892
  queryParams,
893
893
  )
894
894
  }
895
895
 
896
896
  jdJumpToOrderList() {
897
897
  console.warn(
898
898
  '触发基类的jdJumpToOrderList,这不是一个期望的结果,应该调用各端子类来实现',
899
899
  )
900
900
  }
901
901
 
902
902
  jdJumpToCouponSearchProductList(couponId, logEventInfo = {}) {
903
903
  this.jdJumpToWeb(
904
904
  `${this.jumpWebUrl.couponSearch}?couponbatch=${couponId}&sceneval=2`,
905
905
  logEventInfo,
906
906
  )
907
907
  }
908
908
 
909
909
  jdJumpToWeb(
910
910
  spUrl,
911
911
  logEventInfo,
912
912
  successBack?: Function | undefined,
913
913
  failBack?: Function | undefined,
914
914
  ) {
915
915
  this.jdNavigateToNative(
916
916
  `${this.jumpMiniPath.h5}?encode_url=` + encodeURIComponent(spUrl),
917
917
  {
918
918
  ...logEventInfo,
919
919
  },
920
920
  successBack,
921
921
  failBack,
922
922
  )
923
923
  }
924
924
 
925
925
  jdJumpToWebInner(url, logEventInfo) {
926
926
  this.jdJumpToWeb(url, logEventInfo)
927
927
  }
928
928
 
929
929
  weappRedirectToWeb(
930
930
  url: string,
931
931
  logEventInfo: JumpEventReportInterFace.OptEventLogParams = {},
932
932
  ) {
933
933
  console.log('weappRedirectToWeb base:', url)
934
934
  }
935
935
 
936
936
  jdJumpToLive(liveInfo, logEventInfo = {}) {
937
937
  if (liveInfo?.liveId) {
938
938
  this.jdJumpToWeb(
939
939
  `${this.jumpWebUrl.mLive}/${liveInfo?.liveId}?origin=30`,
940
940
  logEventInfo,
941
941
  )
942
942
  }
943
943
  }
944
944
 
945
945
  jdJumpToUgcContent(urlObj, logEventInfo = {}) {
946
946
  if (typeof urlObj === 'object') {
947
947
  this.jdJumpToWeb(
948
948
  `${this.jumpWebUrl.shopUseShareOrderUgcContent}?${objectToUrlEncode(
949
949
  urlObj,
950
950
  )}`,
951
951
  { logEventInfo },
952
952
  )
953
953
  } else {
954
954
  const getShopUgcParams = this.jdOpenAppParams(urlObj)
955
955
  console.log('getShopUgcParams=====', getShopUgcParams)
956
956
  if (getShopUgcParams) {
957
957
  getShopUgcParams['category'] && delete getShopUgcParams['category']
958
958
  getShopUgcParams['des'] && delete getShopUgcParams['des']
959
959
  this.jdJumpToWeb(
960
960
  `${this.jumpWebUrl.shopUseShareOrderUgcContent}?${objectToUrlEncode(
961
961
  getShopUgcParams as Object,
962
962
  )}`,
963
963
  { logEventInfo },
964
964
  )
965
965
  }
966
966
  }
967
967
  }
968
968
 
969
969
  jdJumpToShopActivity(shopInfo) {
970
970
  const getParams = Object.assign(
971
971
  {},
972
972
  {
973
973
  category: 'jump',
974
974
  des: 'jshopActivity',
975
975
  shopId: global.info.queryInfo.shopId,
976
976
  venderId: global.info.queryInfo.venderId,
977
977
  },
978
978
  shopInfo,
979
979
  )
980
980
  getParams['projectId'] &&
981
981
  (getParams['projectId'] = `${getParams['projectId']}`)
982
982
  }
983
983
 
984
984
  jdJumpToShopMember(shopInfo) {
985
985
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
986
986
  this.jdJumpToWeb(
987
987
  `${this.jumpWebUrl.wqShopMember}?${objectToUrlEncode(getShopInfo)}`,
988
988
  shopInfo,
989
989
  )
990
990
  }
991
991
 
992
992
  jdJumpToMemberTab(shopInfo?) {
993
993
  console.log('店内跳转会员tab', shopInfo)
994
994
  }
995
995
 
996
996
  jdJumpToShopMemberCard(shopInfo) {
997
997
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
998
998
  this.jdJumpToWeb(
999
999
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(getShopInfo)}`,
1000
1000
  shopInfo,
1001
1001
  )
1002
1002
  }
1003
1003
 
1004
1004
  jdJumpToTotalPromotion(shopInfo) {
1005
1005
  const { url, logEventInfo } = shopInfo
1006
1006
  if (this.isOpenJdAppUrl(url)) {
1007
1007
  const getOpenAppParams: any = this.jdOpenAppParams(url)
1008
1008
  if (getOpenAppParams) {
1009
1009
  if (getOpenAppParams?.activityId) {
1010
1010
  this.jdJumpToWeb(
1011
1011
  `${this.jumpWebUrl.totalPromotion}?activity_id=${getOpenAppParams?.activityId}`,
1012
1012
  shopInfo,
1013
1013
  )
1014
1014
  }
1015
1015
  }
1016
1016
  } else {
1017
1017
  this.jdJumpToWeb(url, logEventInfo)
1018
1018
  }
1019
1019
  }
1020
1020
 
1021
1021
  jdJumpToDongDongChat(paramInfo) {
1022
1022
  const { venderId = '1', entry = 'm_shop', ...otherInfo } = paramInfo
1023
1023
  const dongdongUrl = `${this.jumpWebUrl.dongDongChat}?venderId=${venderId}&entry=${entry}&sceneval=2`
1024
1024
  this.jdJumpToWeb(dongdongUrl, otherInfo)
1025
1025
  }
1026
1026
 
1027
1027
  jdJumpToShopDetail(shopInfo) {
1028
1028
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
1029
1029
  this.jdJumpToWeb(
1030
1030
  `${this.jumpWebUrl.shopIntroduce}?${objectToUrlEncode(getShopInfo)}`,
1031
1031
  shopInfo,
1032
1032
  )
1033
1033
  }
1034
1034
 
1035
1035
  jdJumpToMiniProgram({
1036
1036
  appId,
1037
1037
  path,
1038
1038
  param = {},
1039
1039
  }: JumpEventReportInterFace.LinkMiniParams) {
1040
1040
  const pageName = param['pageType'] || 'home'
1041
1041
  path = `pages/${pageName}/index`
1042
1042
  if (appId === global.info.pageInfo?.appId) {
1043
1043
  Taro.navigateTo({
1044
1044
  url: `/${path}?${objectToUrlEncode(param)}`,
1045
1045
  }).catch((err) => {
1046
1046
  console.warn('跳转小程序页面错误:', err)
1047
1047
  })
1048
1048
  } else {
1049
1049
  console.log('一个小程序跳转到另一个小程序暂无此业务')
1050
1050
  }
1051
1051
  }
1052
1052
 
1053
1053
  jdJumpToAppMiniProgram(
1054
1054
  path: string,
1055
1055
  param = {},
1056
1056
  successBack?: Function,
1057
1057
  failBack?: Function,
1058
1058
  ) {
1059
1059
  this.jdNavigateToNative(path, param, successBack, failBack)
1060
1060
  }
1061
1061
 
1062
1062
  jdJumpConfigUrl(detail, logEventInfo = {}) {
1063
1063
  const { configDataType, configDataValue } = detail
1064
1064
  switch (configDataType) {
1065
1065
  case LinkConfigType.CONFIG_TYPE_SKU_LIST:
1066
1066
  this.jdJumpToProduct(configDataValue.skuIds, logEventInfo)
1067
1067
  break
1068
1068
  case LinkConfigType.CONFIG_TYPE_COUPON_LIST:
1069
1069
  this.jdJumpToWeb(
1070
1070
  `${this.jumpWebUrl.shopCoupon}?couponType=1&shopId=${global.info.queryInfo.shopId}&venderId=${global.info.queryInfo.venderId}`,
1071
1071
  logEventInfo,
1072
1072
  )
1073
1073
  break
1074
1074
  case LinkConfigType.CONFIG_TYPE_CATEGORY:
1075
1075
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1076
1076
  const getShopSearchParams = this.jdOpenAppParams(
1077
1077
  configDataValue.clickUrl,
1078
1078
  )
1079
1079
  getShopSearchParams &&
1080
1080
  this.jdJumpToShopSearch(
1081
1081
  Object.assign({}, getShopSearchParams, {
1082
1082
  logEventInfo,
1083
1083
  }),
1084
1084
  )
1085
1085
  } else {
1086
1086
  this.jdJumpToShopSearch(
1087
1087
  configDataValue['cid']
1088
1088
  ? Object.assign(
1089
1089
  {},
1090
1090
  {
1091
1091
  shopId: global.info.queryInfo.shopId,
1092
1092
  categoryId: configDataValue.cid,
1093
1093
  logEventInfo,
1094
1094
  },
1095
1095
  )
1096
1096
  : {
1097
1097
  shopId: global.info.queryInfo.shopId,
1098
1098
  logEventInfo,
1099
1099
  },
1100
1100
  )
1101
1101
  }
1102
1102
  break
1103
1103
  case LinkConfigType.CONFIG_TYPE_MEMBER:
1104
1104
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1105
1105
  const getShopMemberParams = this.jdOpenAppParams(
1106
1106
  configDataValue.clickUrl,
1107
1107
  )
1108
1108
  getShopMemberParams &&
1109
1109
  this.jdJumpToShopMember(
1110
1110
  Object.assign({}, getShopMemberParams, {
1111
1111
  logEventInfo,
1112
1112
  }),
1113
1113
  )
1114
1114
  } else {
1115
1115
  this.jdJumpToShopMember({
1116
1116
  shopId: global.info.queryInfo.shopId,
1117
1117
  venderId: configDataValue.shopDetail,
1118
1118
  logEventInfo,
1119
1119
  })
1120
1120
  }
1121
1121
  break
1122
1122
  case LinkConfigType.CONFIG_TYPE_SHOP_ACTIVITY:
1123
1123
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1124
1124
  const getShopActivityParams = this.jdOpenAppParams(
1125
1125
  configDataValue.clickUrl,
1126
1126
  )
1127
1127
  getShopActivityParams &&
1128
1128
  this.jdJumpToShopActivity(
1129
1129
  Object.assign({}, getShopActivityParams, {
1130
1130
  logEventInfo,
1131
1131
  }),
1132
1132
  )
1133
1133
  } else if (configDataValue['projectId']) {
1134
1134
  this.jdJumpToShopActivity({
1135
1135
  projectId: configDataValue['projectId'],
1136
1136
  configDataValue,
1137
1137
  logEventInfo,
1138
1138
  })
1139
1139
  }
1140
1140
  break
1141
1141
  case LinkConfigType.CONFIG_TYPE_CUSTOM_LINK:
1142
1142
  case LinkConfigType.CONFIG_TYPE_FINANCE_COUPON: {
1143
1143
  const _url = configDataValue.linkUrl
1144
1144
  if (
1145
1145
  _url.indexOf('to=') === -1 &&
1146
1146
  _url.indexOf(`${domain.mshop.replace(/https?:/, '')}/?shopId=`) !== -1
1147
1147
  ) {
1148
1148
  const _shopId = _url.match(/\d+/g)[0]
1149
1149
  this.jdJumpToShopHome({
1150
1150
  shopId: `${_shopId}`,
1151
1151
  logEventInfo,
1152
1152
  })
1153
1153
  } else if (this.isOpenJdAppUrl(_url)) {
1154
1154
  const getOpenAppParams = this.jdOpenAppParams(_url)
1155
1155
  console.log('获取解析后的参数结果', getOpenAppParams)
1156
1156
  if (getOpenAppParams) {
1157
1157
  isJdApp
1158
1158
  ? this.jdNavigateToNative(
1159
1159
  Object.assign({}, getOpenAppParams, {
1160
1160
  logEventInfo,
1161
1161
  }),
1162
1162
  )
1163
1163
  : this.jdNavigateToNative(
1164
1164
  '',
1165
1165
  Object.assign({}, getOpenAppParams, {
1166
1166
  logEventInfo,
1167
1167
  }),
1168
1168
  )
1169
1169
  } else {
1170
1170
  this.jdNavigateToNative(
1171
1171
  '',
1172
1172
  Object.assign({}, getOpenAppParams, {
1173
1173
  logEventInfo,
1174
1174
  }),
1175
1175
  )
1176
1176
  }
1177
1177
  } else {
1178
1178
  this.jdJumpToWeb(_url, logEventInfo)
1179
1179
  }
1180
1180
  break
1181
1181
  }
1182
1182
  case LinkConfigType.CONFIG_TYPE_JSHOP_DETAIL:
1183
1183
  this.jdJumpToShopDetail({
1184
1184
  venderId: global.info.queryInfo.venderId,
1185
1185
  shopId: global.info.queryInfo.shopId,
1186
1186
  logEventInfo,
1187
1187
  })
1188
1188
  break
1189
1189
  case LinkConfigType.CONFIG_TYPE_SHOP_HOME:
1190
1190
  this.jdJumpToShopHome({
1191
1191
  ...configDataValue,
1192
1192
  logEventInfo,
1193
1193
  })
1194
1194
  break
1195
1195
  case LinkConfigType.CONFIG_TYPE_ANCHOR_POINT:
1196
1196
  break
1197
1197
  case LinkConfigType.CONFIG_TYPE_SHOPPING_GUIDE:
1198
1198
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1199
1199
  const getShoppingGuideParams = this.jdOpenAppParams(
1200
1200
  configDataValue.clickUrl,
1201
1201
  )
1202
1202
  getShoppingGuideParams &&
1203
1203
  this.jdJumpToShopActivity(
1204
1204
  Object.assign({}, getShoppingGuideParams, {
1205
1205
  logEventInfo,
1206
1206
  }),
1207
1207
  )
1208
1208
  }
1209
1209
  break
1210
1210
  case LinkConfigType.CONFIG_TYPE_MINI_PROGRAM: {
1211
1211
  const linkUrl = decodeURIComponent(configDataValue?.linkUrl || '')
1212
1212
  const search = linkUrl.match(/\?.+/)
1213
1213
  if (search) {
1214
1214
  const miniQueryData: JumpEventReportInterFace.LinkMiniParams =
1215
1215
  parseQueryUrlString(linkUrl)
1216
1216
  try {
1217
1217
  miniQueryData.param = JSON.parse(<string>miniQueryData?.param)
1218
1218
  } catch (e) {
1219
1219
  console.warn('解析小程序 param 错误:', miniQueryData.param)
1220
1220
  }
1221
1221
  this.jdJumpToMiniProgram(miniQueryData)
1222
1222
  } else {
1223
1223
  console.warn('小程序地址错误:', linkUrl)
1224
1224
  }
1225
1225
  break
1226
1226
  }
1227
1227
  default:
1228
1228
  }
1229
1229
  }
1230
1230
 
1231
1231
  jdOpenAppParams(openAppUrl): Object | boolean {
1232
1232
  let getParams: boolean | Object = false
1233
1233
  if (this.isOpenJdAppUrl(openAppUrl)) {
1234
1234
  try {
1235
1235
  getParams = openAppUrl.replace(
1236
1236
  /openApp\.jdMobile:\/\/virtual\?params=/i,
1237
1237
  '',
1238
1238
  )
1239
1239
  getParams = JSON.parse(String(getParams))
1240
1240
  } catch (e) {
1241
1241
  console.log(e)
1242
1242
  }
1243
1243
  }
1244
1244
  return getParams
1245
1245
  }
1246
1246
  isOpenJdAppUrl(openAppUrl) {
1247
1247
  return /openApp\.jdMobile:\/\/virtual\?params=/i.test(openAppUrl)
1248
1248
  }
1249
1249
 
1250
1250
  creatParamToLogStr(eventParam) {
1251
1251
  return eventParam
1252
1252
  ? Object.keys(eventParam)
1253
1253
  .map((key) => {
1254
1254
  return `${key}_${eventParam[key]}`
1255
1255
  })
1256
1256
  .join('_')
1257
1257
  : ''
1258
1258
  }
1259
1259
 
1260
1260
  jdNavigateToNative(
1261
1261
  url: string,
1262
1262
  params: {
1263
1263
  logEventInfo?: object
1264
1264
  } = {},
1265
1265
  successBack?: Function | undefined,
1266
1266
  failBack?: Function | undefined,
1267
1267
  ) {
1268
1268
  const { logEventInfo } = params
1269
1269
  const getEparam = logEventInfo || params
1270
1270
  console.log('jdNavigateToNative params: ', params)
1271
1271
  console.log('logEventInfo params: ', logEventInfo)
1272
1272
  try {
1273
1273
  this.clickEventLog(getEparam)
1274
1274
  } catch (e) {
1275
1275
  console.log(e)
1276
1276
  }
1277
1277
  setTimeout(() => {
1278
1278
  Taro.navigateTo({
1279
1279
  url,
1280
1280
  })
1281
1281
  .then((res) => {
1282
1282
  typeof successBack === 'function' && successBack(res)
1283
1283
  console.log('navigateToWxapp.success', res)
1284
1284
  })
1285
1285
  .catch((err) => {
1286
1286
  typeof failBack === 'function' && failBack(err)
1287
1287
  console.log('navigateToWxapp.fail', err)
1288
1288
  })
1289
1289
  }, 200)
1290
1290
  }
1291
1291
 
1292
1292
  clickEventLog(
1293
1293
  opts: JumpEventReportInterFace.OptEventLogParams = {},
1294
1294
  clickKey = 'click',
1295
1295
  ) {
1296
1296
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts
1297
1297
  if (eventId && jsonParam) {
1298
1298
  const { etModelInfo, logBaseInfo } = jsonParam
1299
1299
  const miniClickKey = clickKey === 'addToCart' ? 'addToCart' : 'click'
1300
1300
  const miniLogParams = {
1301
1301
  eid: eventId,
1302
1302
  elevel: eventLevel,
1303
1303
  ext: JSON.stringify(logBaseInfo || jsonParam),
1304
1304
  etModel: JSON.stringify(etModelInfo || {}),
1305
1305
  pname: this.logPname,
1306
1306
  pparam: JSON.stringify(this.routerInfo.params),
1307
1307
  target: this.routerInfo.path,
1308
1308
  event: this.nativeEvent,
1309
1309
  pageId: this.logPageId,
1310
1310
  ...otherParams,
1311
1311
  }
1312
1312
  console.log('点击埋点参数对象', miniLogParams, miniClickKey)
1313
1313
  global.miniAppLogInstance &&
1314
1314
  global.miniAppLogInstance[miniClickKey](miniLogParams)
1315
1315
  }
1316
1316
  }
1317
1317
 
1318
1318
  exposureEventLog(opts: JumpEventReportInterFace.OptEventLogParams = {}) {
1319
1319
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts
1320
1320
  if (eventId && jsonParam) {
1321
1321
  const { etModelInfo, logBaseInfo } = jsonParam
1322
1322
  const miniLogParams = {
1323
1323
  eid: eventId,
1324
1324
  elevel: eventLevel,
1325
1325
  ext: JSON.stringify(logBaseInfo || jsonParam),
1326
1326
  etModel: JSON.stringify(etModelInfo || {}),
1327
1327
  pname: this.logPname,
1328
1328
  pparam: JSON.stringify(this.routerInfo.params),
1329
1329
  target: this.routerInfo.path,
1330
1330
  pageId: this.logPageId,
1331
1331
  ...otherParams,
1332
1332
  }
1333
1333
  global.miniAppLogInstance &&
1334
1334
  global.miniAppLogInstance['exposure'](miniLogParams)
1335
1335
  }
1336
1336
  }
1337
1337
 
1338
1338
  initOpenTriggerExposure(type) {
1339
1339
  if (!this.sectionExposureInfo[type]) {
1340
1340
  Taro.nextTick(() => {
1341
1341
  setTimeout(() => {
1342
1342
  global.info.pageInfo.isExposureState = true
1343
1343
  taroEventInitExposure()
1344
1344
  this.sectionExposureInfo[`${type}`] = true
1345
1345
  }, 200)
1346
1346
  })
1347
1347
  }
1348
1348
  }