@conecli/cone-render 0.9.1-shop2.30 → 0.9.1-shop2.32

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.
@@ -1 +1 @@
1
- import Taro from '@tarojs/taro'
2
1
  SECTION_HOME_TAB_TYPE,
3
2
  SECTION_HOME_TAB_NAME_TYPE,
4
3
  SHOP_MENU_ID_NAME,
5
4
  SHOP_MENU_ID_TYPE,
6
5
 
7
6
  jdJumpToShopHome(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
8
7
  console.log('[降级H5] jdJumpToShopHome index.weapp')
9
8
  const getInfo = Object.assign(
10
9
  {},
11
10
  {
12
11
  shopId: global.info.queryInfo.shopId,
13
12
  venderId: global.info.queryInfo.venderId,
14
13
  },
15
14
  shopInfo,
16
15
  )
17
16
  this.jdJumpToShopBase(getInfo)
18
17
  }
19
18
 
20
19
  jdJumpToShopCategory(shopId, venderId, logEventInfo = {}) {
21
20
  console.log('[降级H5] jdJumpToShopCategory index.weapp')
22
21
  this.jdJumpToAppMiniProgram(this.jumpMiniPath.shopx, {
23
22
  shopId,
24
23
  venderId,
25
24
  tabActive: SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.CLASSIFY],
26
25
  logEventInfo,
27
26
  })
28
27
  }
29
28
 
30
29
  jdJumpToShopBase(shopInfo) {
31
30
  console.log('[降级H5] jdJumpToShopBase index.weapp')
32
31
  this.jdNavigateToNative(
33
32
  `${this.jumpMiniPath.shopx}?${objectToUrlEncode(
34
33
  this.getShopIdOrVenderIdParams(shopInfo),
35
34
  )}`,
36
35
  {
37
36
  ...shopInfo,
38
37
  },
39
38
  )
40
39
  }
41
40
 
42
41
  jdJumpToShopLight(shopInfo) {
43
42
  this.jdNavigateToNative(
44
43
  `${this.jumpMiniPath.shopLight}?${objectToUrlEncode(
45
44
  this.getShopIdOrVenderIdParams(shopInfo),
46
45
  )}`,
47
46
  {
48
47
  ...shopInfo,
49
48
  },
50
49
  )
51
50
  }
52
51
 
53
52
  jdJumpToProduct(skuIds, logEventInfo) {
54
53
  skuIds = skuIds.toString().trim()
55
54
  const getSkuId = skuIds.indexOf(',') !== -1 ? skuIds.split(',')[0] : skuIds
56
55
  console.log('京购商详页跳转:', this.jumpMiniPath.detail)
57
56
  this.jdNavigateToNative(
58
57
  `${this.jumpMiniPath.detail}?sku=${getSkuId}`,
59
58
  logEventInfo,
60
59
  )
61
60
  }
62
61
 
63
62
  jdJumpToCoupon(
64
63
  nowUrlParams: JumpEventReportInterFace.CouponUrlParams,
65
64
  logInfo,
66
65
  ) {
67
66
  if (
68
67
  nowUrlParams.batchId &&
69
68
  (nowUrlParams.bindType === 1 || nowUrlParams.bindType === 3)
70
69
  ) {
71
70
  const couponUrlParams = {
72
71
  batch: nowUrlParams.batchId,
73
72
  kind: nowUrlParams.bindType,
74
73
  startTime: nowUrlParams.startTime,
75
74
  endTime: nowUrlParams.endTime,
76
75
  quangoufrom: 6,
77
76
  }
78
77
  this.jdNavigateToNative(
79
78
  `${this.jumpMiniPath.searchCoupon}?${objectToUrlEncode(
80
79
  couponUrlParams,
81
80
  )}`,
82
81
  {
83
82
  ...logInfo,
84
83
  },
85
84
  )
86
85
  } else if (
87
86
  nowUrlParams.batchId &&
88
87
  nowUrlParams.bindType !== 1 &&
89
88
  nowUrlParams.bindType !== 3
90
89
  ) {
91
90
  const couponUrlParams = {
92
91
  ...this.getShopIdOrVenderIdParams(global.info.queryInfo),
93
92
  sceneId: 1002,
94
93
  }
95
94
  this.jdNavigateToNative(
96
95
  `${this.jumpMiniPath.shop}?${objectToUrlEncode(couponUrlParams)}`,
97
96
  {
98
97
  ...logInfo,
99
98
  },
100
99
  )
101
100
  }
102
101
  }
103
102
 
104
103
  jdJumpToJTCoupon(
105
104
  nowUrlParams: JumpEventReportInterFace.CouponUrlParams,
106
105
  logInfo,
107
106
  ) {
108
107
  const couponUrlParams = {
109
108
  batch: nowUrlParams.batchId,
110
109
  kind: nowUrlParams.bindType,
111
110
  startTime: nowUrlParams.startTime,
112
111
  endTime: nowUrlParams.endTime,
113
112
  quangoufrom: 6,
114
113
  }
115
114
  this.jdNavigateToNative(
116
115
  `${this.jumpMiniPath.searchCoupon}?${objectToUrlEncode(couponUrlParams)}`,
117
116
  {
118
117
  ...logInfo,
119
118
  },
120
119
  )
121
120
  }
122
121
 
123
122
  jdJumpToRankList(contentId: string | number, rankType = 10, logEventInfo) {
124
123
  const rankUrl = `${this.jumpWebUrl.rank}?contentId=${contentId}&sku=&rankType=${rankType}&fromName=dcpws&hideAd=1`
125
124
  this.jdJumpToWeb(rankUrl, {
126
125
  contentId,
127
126
  ...logEventInfo,
128
127
  })
129
128
  }
130
129
 
131
130
  jdJumpToWeb(spUrl, logEventInfo) {
132
131
  this.jdNavigateToNative(
133
132
  `${this.jumpMiniPath.h5}?encode_url=${encodeURIComponent(spUrl)}`,
134
133
  {
135
134
  ...logEventInfo,
136
135
  },
137
136
  )
138
137
  }
139
138
 
140
139
  weappRedirectToWeb(
141
140
  url: string,
142
141
  logEventInfo: JumpEventReportInterFace.OptEventLogParams = {},
143
142
  otherParam = {}
144
143
  ) {
145
144
  let paramStr = ''
146
145
  const getOtherParamKeysLength = Object.keys(otherParam).length
147
146
  if(getOtherParamKeysLength > 0){
148
147
  Object.keys(otherParam).forEach((key) => {
149
148
  const getValue = `${otherParam[key]}`
150
149
  .replace(/undefined/, '')
151
150
  .replace(/null/, '')
152
151
  paramStr += `${key}=${getValue}&`
153
152
  })
154
153
  }
155
154
  const encodeUrl = `/pages/h5/index?${paramStr}encode_url=${encodeURIComponent(url)}`
156
155
  try {
157
156
  this.clickEventLog(logEventInfo)
158
157
  } catch (e) {
159
158
  console.log(e)
160
159
  }
161
160
  setTimeout(() => {
162
161
  Taro.redirectTo({ url: encodeUrl })
163
162
  .then((res) => {
164
163
  console.log('weappRedirectToWeb.success', res)
165
164
  })
166
165
  .catch((err) => {
167
166
  console.log('weappRedirectToWeb.fail', err)
168
167
  })
169
168
  }, 200)
170
169
  }
171
170
 
172
171
  jdJumpToLive(liveInfo, logEventInfo = {}) {
173
172
  if (liveInfo?.liveId) {
174
173
  this.jdJumpToWeb(
175
174
  `${this.jumpWebUrl.mLive}/${liveInfo?.liveId}?origin=0&appid=jdgw`,
176
175
  logEventInfo,
177
176
  )
178
177
  }
179
178
  }
180
179
 
181
180
  jdJumpToActivityPlace(spUrl, logEventInfo) {
182
181
  this.jdJumpToWeb(spUrl, logEventInfo)
183
182
  }
184
183
 
185
184
  jdJumpToShopFans(fansParams, logEventInfo) {
186
185
  this.jdNavigateToNative(
187
186
  `${this.jumpMiniPath.shopFans}?${objectToUrlEncode(fansParams)}`,
188
187
  {
189
188
  ...logEventInfo,
190
189
  },
191
190
  )
192
191
  }
193
192
 
194
193
  jdJumpToShopDetail(shopInfo) {
195
194
  const getInfo = Object.assign(
196
195
  {},
197
196
  {
198
197
  shopId: global.info.queryInfo.shopId,
199
198
  venderId: global.info.queryInfo.venderId,
200
199
  },
201
200
  shopInfo,
202
201
  )
203
202
  const getShopInfo = this.getShopIdOrVenderIdParams(getInfo)
204
203
  this.jdJumpToWeb(
205
204
  `${this.jumpWebUrl.shopIntroduce}?${objectToUrlEncode(getShopInfo)}`,
206
205
  getInfo,
207
206
  )
208
207
  }
209
208
 
210
209
  jdJumpToCouponSearchProductList(couponId, logEventInfo = {}) {
211
210
  this.jdNavigateToNative(
212
211
  `${this.jumpMiniPath.couponSearch}?batch=${couponId}`,
213
212
  logEventInfo,
214
213
  )
215
214
  }
216
215
 
217
216
  jdJumpToShopActivity(shopInfo) {
218
217
  const { configDataValue, logEventInfo, projectId } = shopInfo
219
218
  if (projectId && configDataValue) {
220
219
  this.jdJumpToWeb(
221
220
  `${this.jumpWebUrl.shopSecondActivity}/${configDataValue.data}.html`,
222
221
  logEventInfo,
223
222
  )
224
223
  }
225
224
  }
226
225
 
227
226
  _checkUrlIsProductAndGetSkuInfo(url) {
228
227
  let skuId = null
229
228
  if (/\/\/item\.jd\.com\/(\d+)\.html/.test(url)) {
230
229
  const getSkuRes = url.match(/\/\/item\.jd\.com\/(\d+)\.html/)
231
230
  if (getSkuRes && getSkuRes[1]) {
232
231
  skuId = getSkuRes[1]
233
232
  }
234
233
  } else if (/\/\/item\.m\.jd.com\/product\/(\d+)\.html/.test(url)) {
235
234
  const getSkuRes2 = url.match(/\/\/item\.m\.jd\.com\/product\/(\d+)\.html/)
236
235
  if (getSkuRes2 && getSkuRes2[1]) {
237
236
  skuId = getSkuRes2[1]
238
237
  }
239
238
  }
240
239
  return skuId
241
240
  }
242
241
 
243
242
  jdJumpConfigUrl(detail, logEventInfo = {}) {
244
243
  const { configDataType, configDataValue } = detail
245
244
  switch (configDataType) {
246
245
  case LinkConfigType.CONFIG_TYPE_SKU_LIST:
247
246
  if (logEventInfo?.jsonParam?.logBaseInfo?.mInfo) {
248
247
  logEventInfo.jsonParam.logBaseInfo.mInfo.skuid = configDataValue.skuIds
249
248
  }
250
249
  this.jdJumpToProduct(configDataValue.skuIds, logEventInfo)
251
250
  break
252
251
  case LinkConfigType.CONFIG_TYPE_CATEGORY:
253
252
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
254
253
  const getShopSearchParams = this.jdOpenAppParams(
255
254
  configDataValue.clickUrl,
256
255
  )
257
256
  getShopSearchParams &&
258
257
  this.jdJumpToShopSearch(
259
258
  Object.assign({}, getShopSearchParams, {
260
259
  logEventInfo,
261
260
  }),
262
261
  )
263
262
  } else {
264
263
  this.jdJumpToShopSearch(
265
264
  configDataValue['cid']
266
265
  ? Object.assign(
267
266
  {},
268
267
  {
269
268
  shopId: global.info.queryInfo.shopId,
270
269
  categoryId: configDataValue.cid,
271
270
  ...configDataValue,
272
271
  logEventInfo,
273
272
  },
274
273
  )
275
274
  : {
276
275
  shopId: global.info.queryInfo.shopId,
277
276
  logEventInfo,
278
277
  },
279
278
  )
280
279
  }
281
280
  break
282
281
  case LinkConfigType.CONFIG_TYPE_MEMBER:
283
282
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
284
283
  const getShopMemberParams = this.jdOpenAppParams(
285
284
  configDataValue.clickUrl,
286
285
  )
287
286
  getShopMemberParams &&
288
287
  this.jdJumpToShopMember(
289
288
  Object.assign({}, getShopMemberParams, {
290
289
  logEventInfo,
291
290
  }),
292
291
  )
293
292
  } else {
294
293
  this.jdJumpToShopMember({
295
294
  shopId: global.info.queryInfo.shopId,
296
295
  venderId: configDataValue.shopDetail,
297
296
  logEventInfo,
298
297
  })
299
298
  }
300
299
  break
301
300
  case LinkConfigType.CONFIG_TYPE_SHOP_ACTIVITY:
302
301
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
303
302
  const getShopActivityParams = this.jdOpenAppParams(
304
303
  configDataValue.clickUrl,
305
304
  )
306
305
  if (
307
306
  getShopActivityParams &&
308
307
  getShopActivityParams['des'] == 'jshopActivity'
309
308
  ) {
310
309
  this.jdJumpToShopActivity({
311
310
  projectId: configDataValue['projectId'],
312
311
  configDataValue,
313
312
  logEventInfo,
314
313
  })
315
314
  }
316
315
  } else if (configDataValue['projectId']) {
317
316
  this.jdJumpToShopActivity({
318
317
  projectId: configDataValue['projectId'],
319
318
  configDataValue,
320
319
  logEventInfo,
321
320
  })
322
321
  }
323
322
  break
324
323
  case LinkConfigType.CONFIG_TYPE_CUSTOM_LINK:
325
324
  case LinkConfigType.CONFIG_TYPE_FINANCE_COUPON: {
326
325
  const _url = configDataValue.linkUrl
327
326
  if (
328
327
  _url.indexOf('to=') === -1 &&
329
328
  _url.indexOf(`${domain.mshop.replace(/https?:/, '')}/?shopId=`) !== -1
330
329
  ) {
331
330
  const _shopId = _url.match(/\d+/g)[0]
332
331
  this.jdJumpToShopHome({
333
332
  shopId: `${_shopId}`,
334
333
  logEventInfo,
335
334
  })
336
335
  } else if (this.isOpenJdAppUrl(_url)) {
337
336
  const getOpenAppParams: any = this.jdOpenAppParams(_url)
338
337
  if (getOpenAppParams) {
339
338
  if (getOpenAppParams.jumpTab == 'allProduct') {
340
339
  this.jdJumpToTabAllProduct(
341
340
  global.info.queryInfo.shopId,
342
341
  global.info.queryInfo.venderId,
343
342
  )
344
343
  } else if (
345
344
  getOpenAppParams.des == 'productList' &&
346
345
  getOpenAppParams.from == 'couponBatch'
347
346
  ) {
348
347
  console.log('优惠券跳转至京购优惠券可用商品列表')
349
348
  this.jdJumpToCouponSearchProductList(getOpenAppParams?.couponId)
350
349
  } else if (getOpenAppParams.des == 'vapp') {
351
350
  this.jdJumpToWeb(
352
351
  `https://conecli.com/apps/mpshare/index.html?category=${
353
352
  getOpenAppParams.category
354
353
  }&des=${getOpenAppParams.des}&vapptype=${
355
354
  getOpenAppParams.vapptype
356
355
  }&appId=${getOpenAppParams.appId}&path=${
357
356
  getOpenAppParams.path
358
357
  }&param=${encodeURI(JSON.stringify(getOpenAppParams.param))}`,
359
358
  logEventInfo,
360
359
  )
361
360
  } else {
362
361
  this.jdNavigateToNative(
363
362
  '',
364
363
  Object.assign({}, getOpenAppParams, {
365
364
  logEventInfo,
366
365
  }),
367
366
  )
368
367
  }
369
368
  }
370
369
  } else {
371
370
  const getSkuId = this._checkUrlIsProductAndGetSkuInfo(_url)
372
371
  getSkuId
373
372
  ? this.jdJumpToProduct(getSkuId, logEventInfo)
374
373
  : this.jdJumpToWeb(_url, logEventInfo)
375
374
  }
376
375
  break
377
376
  }
378
377
  case LinkConfigType.CONFIG_TYPE_JSHOP_DETAIL:
379
378
  this.jdJumpToShopDetail({
380
379
  venderId: global.info.queryInfo.venderId,
381
380
  shopId: global.info.queryInfo.shopId,
382
381
  logEventInfo,
383
382
  })
384
383
  break
385
384
  case LinkConfigType.CONFIG_TYPE_SHOP_HOME:
386
385
  this.jdJumpToShopHome({
387
386
  ...configDataValue,
388
387
  logEventInfo,
389
388
  })
390
389
  break
391
390
  case LinkConfigType.CONFIG_TYPE_CATEGORY_PAGE:
392
391
  this.jdJumpToShopCategory(
393
392
  global.info.queryInfo.shopId,
394
393
  global.info.queryInfo.venderId,
395
394
  )
396
395
  break
397
396
  case LinkConfigType.CONFIG_TYPE_ANCHOR_POINT:
398
397
  break
399
398
  case LinkConfigType.CONFIG_TYPE_SHOPPING_GUIDE:
400
399
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
401
400
  const getShoppingGuideParams = this.jdOpenAppParams(
402
401
  configDataValue.clickUrl,
403
402
  )
404
403
  getShoppingGuideParams &&
405
404
  this.jdJumpToShopActivity(
406
405
  Object.assign({}, getShoppingGuideParams, {
407
406
  logEventInfo,
408
407
  }),
409
408
  )
410
409
  }
411
410
  break
412
411
  case LinkConfigType.CONFIG_TYPE_MINI_PROGRAM: {
413
412
  const linkUrl = decodeURIComponent(configDataValue?.linkUrl || '')
414
413
  const search = linkUrl.match(/\?.+/)
415
414
  if (search) {
416
415
  const miniQueryData: JumpEventReportInterFace.LinkMiniParams =
417
416
  parseQueryUrlString(linkUrl)
418
417
  try {
419
418
  miniQueryData.param = JSON.parse(<string>miniQueryData?.param)
420
419
  } catch (e) {
421
420
  console.warn('解析小程序 param 错误:', miniQueryData.param)
422
421
  }
423
422
  this.jdJumpToMiniProgram(miniQueryData)
424
423
  } else {
425
424
  console.warn('小程序地址错误:', linkUrl)
426
425
  }
427
426
  break
428
427
  }
429
428
  default:
430
429
  }
431
430
  }
432
431
 
433
432
  jdJumpToTabAllProduct(shopId, venderId, logEventInfo = {}) {
434
433
  console.log('index.weapp.ts - jdJumpToTabAllProduct')
435
434
  if (typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId
436
435
  if (typeof venderId === 'undefined') venderId = global.info.queryInfo.venderId
437
436
  this.jdJumpToAppMiniProgram(this.jumpMiniPath.shopx, {
438
437
  shopId,
439
438
  venderId,
440
439
  tabActive: SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_PRODUCT],
441
440
  logEventInfo,
442
441
  })
443
442
  }
444
443
 
445
444
  jdJumpToTopTabBase(type, shopInfo = {}) {
446
445
  const getInfo = Object.assign(
447
446
  {},
448
447
  {
449
448
  shopId: global.info.queryInfo.shopId,
450
449
  venderId: global.info.queryInfo.venderId,
451
450
  },
452
451
  shopInfo,
453
452
  )
454
453
  console.log('小程序原生跳转 jdJumpToTopTabBase')
455
454
  const { shopId, venderId, ...logEventInfo } = getInfo
456
455
  this.jdJumpToAppMiniProgram(this.jumpMiniPath.shopx, {
457
456
  shopId,
458
457
  venderId,
459
458
  tabActive: type,
460
459
  ...logEventInfo,
461
460
  })
462
461
  }
463
462
 
464
463
  jdJumpToSearch(shopId, suggestWord) {
465
464
  if (typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId
466
465
  this.jdJumpToAppMiniProgram(this.jumpMiniPath.shopSearch, {
467
466
  shopId,
468
467
  })
469
468
  }
470
469
 
471
470
  jdJumpToAppHome(params = {}) {
472
471
  this.jdJumpToAppMiniProgram(this.jumpMiniPath.jingGouHome, params)
473
472
  }
474
473
 
475
474
  jdJumpToThreePlatform(spUrl, logEventInfo) {
476
475
  this.jdJumpToWeb(spUrl, logEventInfo)
477
476
  }
478
477
 
479
478
  jdJumpToMiniProgram({
480
479
  appId,
481
480
  path,
482
481
  param = {},
483
482
  }: JumpEventReportInterFace.LinkMiniParams) {
484
483
  const pageName = param['pageType'] || 'home'
485
484
  path = `pages/${pageName}/index`
486
485
  if (appId === global.info.pageInfo?.appId) {
487
486
  Taro.navigateTo({
488
487
  url: `/${path}?${objectToUrlEncode(param)}`,
489
488
  }).catch((err) => {
490
489
  console.warn('跳转小程序页面错误:', err)
491
490
  })
492
491
  } else {
493
492
  console.log('一个小程序跳转到另一个小程序暂无此业务')
494
493
  }
495
494
  }
496
495
 
497
496
  jdJumpToAppMiniProgram(
498
497
  path: string,
499
498
  param = {},
500
499
  successBack?: Function,
501
500
  failBack?: Function,
502
501
  ) {
503
502
  this.jdNavigateToNative(path, param, successBack, failBack)
504
503
  }
505
504
 
506
505
  jdNavigateToNative(
507
506
  url: string,
508
507
  params: {
509
508
  logEventInfo?: object
510
509
  } = {},
511
510
  successBack?: Function,
512
511
  failBack?: Function,
513
512
  ) {
514
513
  const { logEventInfo, ...otherParams } = params
515
514
  const getEparam = logEventInfo || params
516
515
  console.log('[降级H5] index.weapp jdNavigateToNative params: ', params)
517
516
  console.log('wxmini logEventInfo params: ', logEventInfo)
518
517
  try {
519
518
  this.clickEventLog(getEparam)
520
519
  } catch (e) {
521
520
  console.log(e)
522
521
  }
523
522
  setTimeout(() => {
524
523
  const goToPath = `${url}${
525
524
  otherParams ? '?' + objectToUrlEncode(otherParams) : ''
526
525
  }`
527
526
  console.log('打印跳转地址path', goToPath)
528
527
  if (url === this.jumpMiniPath.jingGouHome) {
529
528
  Taro.switchTab({
530
529
  url: goToPath,
531
530
  })
532
531
  .then((res) => {
533
532
  typeof successBack === 'function' && successBack(res)
534
533
  console.log('navigateToWxapp.success', res)
535
534
  })
536
535
  .catch((err) => {
537
536
  typeof failBack === 'function' && failBack(err)
538
537
  console.log('navigateToWxapp.fail', err)
539
538
  })
540
539
  } else {
541
540
  Taro.navigateTo({
542
541
  url: goToPath,
543
542
  })
544
543
  .then((res) => {
545
544
  typeof successBack === 'function' && successBack(res)
546
545
  console.log('navigateToWxapp.success', res)
547
546
  })
548
547
  .catch((err) => {
549
548
  typeof failBack === 'function' && failBack(err)
550
549
  console.log('navigateToWxapp.fail', err)
551
550
  })
552
551
  }
553
552
  }, 200)
554
553
  }
555
554
 
556
555
  clickEventLog(
557
556
  opts: JumpEventReportInterFace.OptEventLogParams = {},
558
557
  clickKey = 'click',
559
558
  ) {
560
559
  const { eventId, jsonParam, eventLevel = 3, skuId, ...otherParams } = opts
561
560
  if (eventId && jsonParam) {
562
561
  if (/TerminatorNew_/.test(eventId + '')) {
563
562
  console.log('mini eventId==========', eventId)
564
563
  }
565
564
  const { etModelInfo, logBaseInfo } = jsonParam
566
565
  let getJsonParam = {}
567
566
  if (etModelInfo && logBaseInfo) {
568
567
  getJsonParam = logBaseInfo
569
568
  } else {
570
569
  if (Array.isArray(jsonParam)){
571
570
  getJsonParam = jsonParam
572
571
  } else {
573
572
  getJsonParam = Object.assign(
574
573
  {},
575
574
  {
576
575
  shopid: global.info.queryInfo?.shopId,
577
576
  },
578
577
  jsonParam,
579
578
  )
580
579
  }
581
580
  }
582
581
  if(clickKey === 'exposure' && /^TerminatorNew/.test(eventId) && !Array.isArray(getJsonParam)){
583
582
  getJsonParam = [getJsonParam]
584
583
  }
585
584
  const miniLogParams = {
586
585
  eid: eventId,
587
586
  elevel: eventLevel,
588
587
  eparam: JSON.stringify(getJsonParam),
589
588
  pageId: this.logPageId,
590
589
  pname: this.logPname,
591
590
  pparam: JSON.stringify(this.routerInfo.params),
592
591
  target: this.routerInfo.path,
593
592
  event: this.nativeEvent,
594
593
  ...otherParams,
595
594
  }
596
595
  if (clickKey === 'addToCart' && skuId) {
597
596
  miniLogParams['shoppingList'] = {
598
597
  [skuId]: 1,
599
598
  }
600
599
  }
601
600
  return new Promise((resolve) => {
602
601
  global.miniAppLogInstance &&
603
602
  global.miniAppLogInstance[clickKey](miniLogParams)
604
603
  setTimeout(() => {
605
604
  resolve(true)
606
605
  }, 300)
607
606
  })
608
607
  } else {
609
608
  console.log('暂无埋点参数eventId和eventParam')
610
609
  return Promise.resolve(false)
611
610
  }
612
611
  }
613
612
 
614
613
  exposureEventLog(opts: JumpEventReportInterFace.OptEventLogParams = {}) {
615
614
  return this.clickEventLog(opts, 'exposure')
616
615
  }
616
+ import Taro from '@tarojs/taro'
617
617
  SECTION_HOME_TAB_TYPE,
618
618
  SECTION_HOME_TAB_NAME_TYPE,
619
619
  SHOP_MENU_ID_NAME,
620
620
  SHOP_MENU_ID_TYPE,
621
621
 
622
622
  jdJumpToShopHome(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
623
623
  console.log('[降级H5] jdJumpToShopHome index.weapp')
624
624
  const getInfo = Object.assign(
625
625
  {},
626
626
  {
627
627
  shopId: global.info.queryInfo.shopId,
628
628
  venderId: global.info.queryInfo.venderId,
629
629
  },
630
630
  shopInfo,
631
631
  )
632
632
  this.jdJumpToShopBase(getInfo)
633
633
  }
634
634
 
635
635
  jdJumpToShopCategory(shopId, venderId, logEventInfo = {}) {
636
636
  console.log('[降级H5] jdJumpToShopCategory index.weapp')
637
637
  this.jdJumpToAppMiniProgram(this.jumpMiniPath.shopx, {
638
638
  shopId,
639
639
  venderId,
640
640
  tabActive: SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.CLASSIFY],
641
641
  logEventInfo,
642
642
  })
643
643
  }
644
644
 
645
645
  jdJumpToShopBase(shopInfo) {
646
646
  console.log('[降级H5] jdJumpToShopBase index.weapp')
647
647
  this.jdNavigateToNative(
648
648
  `${this.jumpMiniPath.shopx}?${objectToUrlEncode(
649
649
  this.getShopIdOrVenderIdParams(shopInfo),
650
650
  )}`,
651
651
  {
652
652
  ...shopInfo,
653
653
  },
654
654
  )
655
655
  }
656
656
 
657
657
  jdJumpToShopLight(shopInfo) {
658
658
  this.jdNavigateToNative(
659
659
  `${this.jumpMiniPath.shopLight}?${objectToUrlEncode(
660
660
  this.getShopIdOrVenderIdParams(shopInfo),
661
661
  )}`,
662
662
  {
663
663
  ...shopInfo,
664
664
  },
665
665
  )
666
666
  }
667
667
 
668
668
  jdJumpToProduct(skuIds, logEventInfo) {
669
669
  skuIds = skuIds.toString().trim()
670
670
  const getSkuId = skuIds.indexOf(',') !== -1 ? skuIds.split(',')[0] : skuIds
671
671
  if(global?.wxAppNavigatorInstance?.goto){
672
672
  const getParams = {
673
673
  sku: getSkuId,
674
674
  sourceType: "wx_shop",
675
675
  }
676
676
  this.jdNavigateToNative('none',logEventInfo, () => {
677
677
  global.wxAppNavigatorInstance.goto(this.jumpMiniPath.detail,getParams)
678
678
  })
679
679
  }else {
680
680
  this.jdNavigateToNative(
681
681
  `${this.jumpMiniPath.detail}?sku=${getSkuId}`,
682
682
  logEventInfo,
683
683
  )
684
684
  }
685
685
  }
686
686
 
687
687
  jdJumpSkuInfoToProduct(skuInfo: any = {}, logEventInfo) {
688
688
  const { skuId, sourceType = 'wx_shop',skuImage } = skuInfo
689
689
  if(skuId){
690
690
  if(global?.wxAppNavigatorInstance?.goto){
691
691
  const getParams = {
692
692
  sku: skuId,
693
693
  sourceType,
694
694
  }
695
695
  skuImage && (getParams['cover'] = skuImage)
696
696
  this.jdNavigateToNative('none',logEventInfo, () => {
697
697
  global.wxAppNavigatorInstance.goto(this.jumpMiniPath.detail,getParams)
698
698
  })
699
699
  }else {
700
700
  this.jdJumpToProduct(skuId,logEventInfo)
701
701
  }
702
702
  }
703
703
  }
704
704
 
705
705
  jdJumpToCoupon(
706
706
  nowUrlParams: JumpEventReportInterFace.CouponUrlParams,
707
707
  logInfo,
708
708
  ) {
709
709
  if (
710
710
  nowUrlParams.batchId &&
711
711
  (nowUrlParams.bindType === 1 || nowUrlParams.bindType === 3)
712
712
  ) {
713
713
  const couponUrlParams = {
714
714
  batch: nowUrlParams.batchId,
715
715
  kind: nowUrlParams.bindType,
716
716
  startTime: nowUrlParams.startTime,
717
717
  endTime: nowUrlParams.endTime,
718
718
  quangoufrom: 6,
719
719
  }
720
720
  this.jdNavigateToNative(
721
721
  `${this.jumpMiniPath.searchCoupon}?${objectToUrlEncode(
722
722
  couponUrlParams,
723
723
  )}`,
724
724
  {
725
725
  ...logInfo,
726
726
  },
727
727
  )
728
728
  } else if (
729
729
  nowUrlParams.batchId &&
730
730
  nowUrlParams.bindType !== 1 &&
731
731
  nowUrlParams.bindType !== 3
732
732
  ) {
733
733
  const couponUrlParams = {
734
734
  ...this.getShopIdOrVenderIdParams(global.info.queryInfo),
735
735
  sceneId: 1002,
736
736
  }
737
737
  this.jdNavigateToNative(
738
738
  `${this.jumpMiniPath.shop}?${objectToUrlEncode(couponUrlParams)}`,
739
739
  {
740
740
  ...logInfo,
741
741
  },
742
742
  )
743
743
  }
744
744
  }
745
745
 
746
746
  jdJumpToJTCoupon(
747
747
  nowUrlParams: JumpEventReportInterFace.CouponUrlParams,
748
748
  logInfo,
749
749
  ) {
750
750
  const couponUrlParams = {
751
751
  batch: nowUrlParams.batchId,
752
752
  kind: nowUrlParams.bindType,
753
753
  startTime: nowUrlParams.startTime,
754
754
  endTime: nowUrlParams.endTime,
755
755
  quangoufrom: 6,
756
756
  }
757
757
  this.jdNavigateToNative(
758
758
  `${this.jumpMiniPath.searchCoupon}?${objectToUrlEncode(couponUrlParams)}`,
759
759
  {
760
760
  ...logInfo,
761
761
  },
762
762
  )
763
763
  }
764
764
 
765
765
  jdJumpToRankList(contentId: string | number, rankType = 10, logEventInfo) {
766
766
  const rankUrl = `${this.jumpWebUrl.rank}?contentId=${contentId}&sku=&rankType=${rankType}&fromName=dcpws&hideAd=1`
767
767
  this.jdJumpToWeb(rankUrl, {
768
768
  contentId,
769
769
  ...logEventInfo,
770
770
  })
771
771
  }
772
772
 
773
773
  jdJumpToWeb(spUrl, logEventInfo) {
774
774
  this.jdNavigateToNative(
775
775
  `${this.jumpMiniPath.h5}?encode_url=${encodeURIComponent(spUrl)}`,
776
776
  {
777
777
  ...logEventInfo,
778
778
  },
779
779
  )
780
780
  }
781
781
 
782
782
  weappRedirectToWeb(
783
783
  url: string,
784
784
  logEventInfo: JumpEventReportInterFace.OptEventLogParams = {},
785
785
  otherParam = {}
786
786
  ) {
787
787
  let paramStr = ''
788
788
  const getOtherParamKeysLength = Object.keys(otherParam).length
789
789
  if(getOtherParamKeysLength > 0){
790
790
  Object.keys(otherParam).forEach((key) => {
791
791
  const getValue = `${otherParam[key]}`
792
792
  .replace(/undefined/, '')
793
793
  .replace(/null/, '')
794
794
  paramStr += `${key}=${getValue}&`
795
795
  })
796
796
  }
797
797
  const encodeUrl = `/pages/h5/index?${paramStr}encode_url=${encodeURIComponent(url)}`
798
798
  try {
799
799
  this.clickEventLog(logEventInfo)
800
800
  } catch (e) {
801
801
  console.log(e)
802
802
  }
803
803
  setTimeout(() => {
804
804
  Taro.redirectTo({ url: encodeUrl })
805
805
  .then((res) => {
806
806
  console.log('weappRedirectToWeb.success', res)
807
807
  })
808
808
  .catch((err) => {
809
809
  console.log('weappRedirectToWeb.fail', err)
810
810
  })
811
811
  }, 200)
812
812
  }
813
813
 
814
814
  jdJumpToLive(liveInfo, logEventInfo = {}) {
815
815
  if (liveInfo?.liveId) {
816
816
  this.jdJumpToWeb(
817
817
  `${this.jumpWebUrl.mLive}/${liveInfo?.liveId}?origin=0&appid=jdgw`,
818
818
  logEventInfo,
819
819
  )
820
820
  }
821
821
  }
822
822
 
823
823
  jdJumpToActivityPlace(spUrl, logEventInfo) {
824
824
  this.jdJumpToWeb(spUrl, logEventInfo)
825
825
  }
826
826
 
827
827
  jdJumpToShopFans(fansParams, logEventInfo) {
828
828
  this.jdNavigateToNative(
829
829
  `${this.jumpMiniPath.shopFans}?${objectToUrlEncode(fansParams)}`,
830
830
  {
831
831
  ...logEventInfo,
832
832
  },
833
833
  )
834
834
  }
835
835
 
836
836
  jdJumpToShopDetail(shopInfo) {
837
837
  const getInfo = Object.assign(
838
838
  {},
839
839
  {
840
840
  shopId: global.info.queryInfo.shopId,
841
841
  venderId: global.info.queryInfo.venderId,
842
842
  },
843
843
  shopInfo,
844
844
  )
845
845
  const getShopInfo = this.getShopIdOrVenderIdParams(getInfo)
846
846
  this.jdJumpToWeb(
847
847
  `${this.jumpWebUrl.shopIntroduce}?${objectToUrlEncode(getShopInfo)}`,
848
848
  getInfo,
849
849
  )
850
850
  }
851
851
 
852
852
  jdJumpToCouponSearchProductList(couponId, logEventInfo = {}) {
853
853
  this.jdNavigateToNative(
854
854
  `${this.jumpMiniPath.couponSearch}?batch=${couponId}`,
855
855
  logEventInfo,
856
856
  )
857
857
  }
858
858
 
859
859
  jdJumpToShopActivity(shopInfo) {
860
860
  const { configDataValue, logEventInfo, projectId } = shopInfo
861
861
  if (projectId && configDataValue) {
862
862
  this.jdJumpToWeb(
863
863
  `${this.jumpWebUrl.shopSecondActivity}/${configDataValue.data}.html`,
864
864
  logEventInfo,
865
865
  )
866
866
  }
867
867
  }
868
868
 
869
869
  _checkUrlIsProductAndGetSkuInfo(url) {
870
870
  let skuId = null
871
871
  if (/\/\/item\.jd\.com\/(\d+)\.html/.test(url)) {
872
872
  const getSkuRes = url.match(/\/\/item\.jd\.com\/(\d+)\.html/)
873
873
  if (getSkuRes && getSkuRes[1]) {
874
874
  skuId = getSkuRes[1]
875
875
  }
876
876
  } else if (/\/\/item\.m\.jd.com\/product\/(\d+)\.html/.test(url)) {
877
877
  const getSkuRes2 = url.match(/\/\/item\.m\.jd\.com\/product\/(\d+)\.html/)
878
878
  if (getSkuRes2 && getSkuRes2[1]) {
879
879
  skuId = getSkuRes2[1]
880
880
  }
881
881
  }
882
882
  return skuId
883
883
  }
884
884
 
885
885
  jdJumpConfigUrl(detail, logEventInfo = {}) {
886
886
  const { configDataType, configDataValue } = detail
887
887
  switch (configDataType) {
888
888
  case LinkConfigType.CONFIG_TYPE_SKU_LIST:
889
889
  if (logEventInfo?.jsonParam?.logBaseInfo?.mInfo) {
890
890
  logEventInfo.jsonParam.logBaseInfo.mInfo.skuid = configDataValue.skuIds
891
891
  }
892
892
  this.jdJumpToProduct(configDataValue.skuIds, logEventInfo)
893
893
  break
894
894
  case LinkConfigType.CONFIG_TYPE_CATEGORY:
895
895
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
896
896
  const getShopSearchParams = this.jdOpenAppParams(
897
897
  configDataValue.clickUrl,
898
898
  )
899
899
  getShopSearchParams &&
900
900
  this.jdJumpToShopSearch(
901
901
  Object.assign({}, getShopSearchParams, {
902
902
  logEventInfo,
903
903
  }),
904
904
  )
905
905
  } else {
906
906
  this.jdJumpToShopSearch(
907
907
  configDataValue['cid']
908
908
  ? Object.assign(
909
909
  {},
910
910
  {
911
911
  shopId: global.info.queryInfo.shopId,
912
912
  categoryId: configDataValue.cid,
913
913
  ...configDataValue,
914
914
  logEventInfo,
915
915
  },
916
916
  )
917
917
  : {
918
918
  shopId: global.info.queryInfo.shopId,
919
919
  logEventInfo,
920
920
  },
921
921
  )
922
922
  }
923
923
  break
924
924
  case LinkConfigType.CONFIG_TYPE_MEMBER:
925
925
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
926
926
  const getShopMemberParams = this.jdOpenAppParams(
927
927
  configDataValue.clickUrl,
928
928
  )
929
929
  getShopMemberParams &&
930
930
  this.jdJumpToShopMember(
931
931
  Object.assign({}, getShopMemberParams, {
932
932
  logEventInfo,
933
933
  }),
934
934
  )
935
935
  } else {
936
936
  this.jdJumpToShopMember({
937
937
  shopId: global.info.queryInfo.shopId,
938
938
  venderId: configDataValue.shopDetail,
939
939
  logEventInfo,
940
940
  })
941
941
  }
942
942
  break
943
943
  case LinkConfigType.CONFIG_TYPE_SHOP_ACTIVITY:
944
944
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
945
945
  const getShopActivityParams = this.jdOpenAppParams(
946
946
  configDataValue.clickUrl,
947
947
  )
948
948
  if (
949
949
  getShopActivityParams &&
950
950
  getShopActivityParams['des'] == 'jshopActivity'
951
951
  ) {
952
952
  this.jdJumpToShopActivity({
953
953
  projectId: configDataValue['projectId'],
954
954
  configDataValue,
955
955
  logEventInfo,
956
956
  })
957
957
  }
958
958
  } else if (configDataValue['projectId']) {
959
959
  this.jdJumpToShopActivity({
960
960
  projectId: configDataValue['projectId'],
961
961
  configDataValue,
962
962
  logEventInfo,
963
963
  })
964
964
  }
965
965
  break
966
966
  case LinkConfigType.CONFIG_TYPE_CUSTOM_LINK:
967
967
  case LinkConfigType.CONFIG_TYPE_FINANCE_COUPON: {
968
968
  const _url = configDataValue.linkUrl
969
969
  if (
970
970
  _url.indexOf('to=') === -1 &&
971
971
  _url.indexOf(`${domain.mshop.replace(/https?:/, '')}/?shopId=`) !== -1
972
972
  ) {
973
973
  const _shopId = _url.match(/\d+/g)[0]
974
974
  this.jdJumpToShopHome({
975
975
  shopId: `${_shopId}`,
976
976
  logEventInfo,
977
977
  })
978
978
  } else if (this.isOpenJdAppUrl(_url)) {
979
979
  const getOpenAppParams: any = this.jdOpenAppParams(_url)
980
980
  if (getOpenAppParams) {
981
981
  if (getOpenAppParams.jumpTab == 'allProduct') {
982
982
  this.jdJumpToTabAllProduct(
983
983
  global.info.queryInfo.shopId,
984
984
  global.info.queryInfo.venderId,
985
985
  )
986
986
  } else if (
987
987
  getOpenAppParams.des == 'productList' &&
988
988
  getOpenAppParams.from == 'couponBatch'
989
989
  ) {
990
990
  console.log('优惠券跳转至京购优惠券可用商品列表')
991
991
  this.jdJumpToCouponSearchProductList(getOpenAppParams?.couponId)
992
992
  } else if (getOpenAppParams.des == 'vapp') {
993
993
  this.jdJumpToWeb(
994
994
  `https://conecli.com/apps/mpshare/index.html?category=${
995
995
  getOpenAppParams.category
996
996
  }&des=${getOpenAppParams.des}&vapptype=${
997
997
  getOpenAppParams.vapptype
998
998
  }&appId=${getOpenAppParams.appId}&path=${
999
999
  getOpenAppParams.path
1000
1000
  }&param=${encodeURI(JSON.stringify(getOpenAppParams.param))}`,
1001
1001
  logEventInfo,
1002
1002
  )
1003
1003
  } else {
1004
1004
  this.jdNavigateToNative(
1005
1005
  '',
1006
1006
  Object.assign({}, getOpenAppParams, {
1007
1007
  logEventInfo,
1008
1008
  }),
1009
1009
  )
1010
1010
  }
1011
1011
  }
1012
1012
  } else {
1013
1013
  const getSkuId = this._checkUrlIsProductAndGetSkuInfo(_url)
1014
1014
  getSkuId
1015
1015
  ? this.jdJumpToProduct(getSkuId, logEventInfo)
1016
1016
  : this.jdJumpToWeb(_url, logEventInfo)
1017
1017
  }
1018
1018
  break
1019
1019
  }
1020
1020
  case LinkConfigType.CONFIG_TYPE_JSHOP_DETAIL:
1021
1021
  this.jdJumpToShopDetail({
1022
1022
  venderId: global.info.queryInfo.venderId,
1023
1023
  shopId: global.info.queryInfo.shopId,
1024
1024
  logEventInfo,
1025
1025
  })
1026
1026
  break
1027
1027
  case LinkConfigType.CONFIG_TYPE_SHOP_HOME:
1028
1028
  this.jdJumpToShopHome({
1029
1029
  ...configDataValue,
1030
1030
  logEventInfo,
1031
1031
  })
1032
1032
  break
1033
1033
  case LinkConfigType.CONFIG_TYPE_CATEGORY_PAGE:
1034
1034
  this.jdJumpToShopCategory(
1035
1035
  global.info.queryInfo.shopId,
1036
1036
  global.info.queryInfo.venderId,
1037
1037
  )
1038
1038
  break
1039
1039
  case LinkConfigType.CONFIG_TYPE_ANCHOR_POINT:
1040
1040
  break
1041
1041
  case LinkConfigType.CONFIG_TYPE_SHOPPING_GUIDE:
1042
1042
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1043
1043
  const getShoppingGuideParams = this.jdOpenAppParams(
1044
1044
  configDataValue.clickUrl,
1045
1045
  )
1046
1046
  getShoppingGuideParams &&
1047
1047
  this.jdJumpToShopActivity(
1048
1048
  Object.assign({}, getShoppingGuideParams, {
1049
1049
  logEventInfo,
1050
1050
  }),
1051
1051
  )
1052
1052
  }
1053
1053
  break
1054
1054
  case LinkConfigType.CONFIG_TYPE_MINI_PROGRAM: {
1055
1055
  const linkUrl = decodeURIComponent(configDataValue?.linkUrl || '')
1056
1056
  const search = linkUrl.match(/\?.+/)
1057
1057
  if (search) {
1058
1058
  const miniQueryData: JumpEventReportInterFace.LinkMiniParams =
1059
1059
  parseQueryUrlString(linkUrl)
1060
1060
  try {
1061
1061
  miniQueryData.param = JSON.parse(<string>miniQueryData?.param)
1062
1062
  } catch (e) {
1063
1063
  console.warn('解析小程序 param 错误:', miniQueryData.param)
1064
1064
  }
1065
1065
  this.jdJumpToMiniProgram(miniQueryData)
1066
1066
  } else {
1067
1067
  console.warn('小程序地址错误:', linkUrl)
1068
1068
  }
1069
1069
  break
1070
1070
  }
1071
1071
  default:
1072
1072
  }
1073
1073
  }
1074
1074
 
1075
1075
  jdJumpToTabAllProduct(shopId, venderId, logEventInfo = {}) {
1076
1076
  console.log('index.weapp.ts - jdJumpToTabAllProduct')
1077
1077
  if (typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId
1078
1078
  if (typeof venderId === 'undefined') venderId = global.info.queryInfo.venderId
1079
1079
  this.jdJumpToAppMiniProgram(this.jumpMiniPath.shopx, {
1080
1080
  shopId,
1081
1081
  venderId,
1082
1082
  tabActive: SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_PRODUCT],
1083
1083
  logEventInfo,
1084
1084
  })
1085
1085
  }
1086
1086
 
1087
1087
  jdJumpToTopTabBase(type, shopInfo = {}) {
1088
1088
  const getInfo = Object.assign(
1089
1089
  {},
1090
1090
  {
1091
1091
  shopId: global.info.queryInfo.shopId,
1092
1092
  venderId: global.info.queryInfo.venderId,
1093
1093
  },
1094
1094
  shopInfo,
1095
1095
  )
1096
1096
  console.log('小程序原生跳转 jdJumpToTopTabBase')
1097
1097
  const { shopId, venderId, ...logEventInfo } = getInfo
1098
1098
  this.jdJumpToAppMiniProgram(this.jumpMiniPath.shopx, {
1099
1099
  shopId,
1100
1100
  venderId,
1101
1101
  tabActive: type,
1102
1102
  ...logEventInfo,
1103
1103
  })
1104
1104
  }
1105
1105
 
1106
1106
  jdJumpToSearch(shopId, suggestWord) {
1107
1107
  if (typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId
1108
1108
  this.jdJumpToAppMiniProgram(this.jumpMiniPath.shopSearch, {
1109
1109
  shopId,
1110
1110
  })
1111
1111
  }
1112
1112
 
1113
1113
  jdJumpToAppHome(params = {}) {
1114
1114
  this.jdJumpToAppMiniProgram(this.jumpMiniPath.jingGouHome, params)
1115
1115
  }
1116
1116
 
1117
1117
  jdJumpToThreePlatform(spUrl, logEventInfo) {
1118
1118
  this.jdJumpToWeb(spUrl, logEventInfo)
1119
1119
  }
1120
1120
 
1121
1121
  jdJumpToMiniProgram({
1122
1122
  appId,
1123
1123
  path,
1124
1124
  param = {},
1125
1125
  }: JumpEventReportInterFace.LinkMiniParams) {
1126
1126
  const pageName = param['pageType'] || 'home'
1127
1127
  path = `pages/${pageName}/index`
1128
1128
  if (appId === global.info.pageInfo?.appId) {
1129
1129
  Taro.navigateTo({
1130
1130
  url: `/${path}?${objectToUrlEncode(param)}`,
1131
1131
  }).catch((err) => {
1132
1132
  console.warn('跳转小程序页面错误:', err)
1133
1133
  })
1134
1134
  } else {
1135
1135
  console.log('一个小程序跳转到另一个小程序暂无此业务')
1136
1136
  }
1137
1137
  }
1138
1138
 
1139
1139
  jdJumpToAppMiniProgram(
1140
1140
  path: string,
1141
1141
  param = {},
1142
1142
  successBack?: Function,
1143
1143
  failBack?: Function,
1144
1144
  ) {
1145
1145
  this.jdNavigateToNative(path, param, successBack, failBack)
1146
1146
  }
1147
1147
 
1148
1148
  jdNavigateToNative(
1149
1149
  url: string,
1150
1150
  params: {
1151
1151
  logEventInfo?: object
1152
1152
  } = {},
1153
1153
  successBack?: Function,
1154
1154
  failBack?: Function,
1155
1155
  ) {
1156
1156
  const { logEventInfo, ...otherParams } = params
1157
1157
  const getEparam = logEventInfo || params
1158
1158
  console.log('[降级H5] index.weapp jdNavigateToNative params: ', params)
1159
1159
  console.log('wxmini logEventInfo params: ', logEventInfo)
1160
1160
  try {
1161
1161
  this.clickEventLog(getEparam)
1162
1162
  } catch (e) {
1163
1163
  console.log(e)
1164
1164
  }
1165
1165
  setTimeout(() => {
1166
1166
  const goToPath = `${url}${
1167
1167
  otherParams ? '?' + objectToUrlEncode(otherParams) : ''
1168
1168
  }`
1169
1169
  console.log('打印跳转地址path', goToPath)
1170
1170
  if (url === this.jumpMiniPath.jingGouHome) {
1171
1171
  Taro.switchTab({
1172
1172
  url: goToPath,
1173
1173
  })
1174
1174
  .then((res) => {
1175
1175
  typeof successBack === 'function' && successBack(res)
1176
1176
  console.log('navigateToWxapp.success', res)
1177
1177
  })
1178
1178
  .catch((err) => {
1179
1179
  typeof failBack === 'function' && failBack(err)
1180
1180
  console.log('navigateToWxapp.fail', err)
1181
1181
  })
1182
1182
  } else {
1183
1183
  if(url !== "none"){
1184
1184
  Taro.navigateTo({
1185
1185
  url: goToPath,
1186
1186
  })
1187
1187
  .then((res) => {
1188
1188
  typeof successBack === 'function' && successBack(res)
1189
1189
  console.log('navigateToWxapp.success', res)
1190
1190
  })
1191
1191
  .catch((err) => {
1192
1192
  typeof failBack === 'function' && failBack(err)
1193
1193
  console.log('navigateToWxapp.fail', err)
1194
1194
  })
1195
1195
  }else {
1196
1196
  typeof successBack === 'function' && successBack(url)
1197
1197
  }
1198
1198
  }
1199
1199
  }, 200)
1200
1200
  }
1201
1201
 
1202
1202
  clickEventLog(
1203
1203
  opts: JumpEventReportInterFace.OptEventLogParams = {},
1204
1204
  clickKey = 'click',
1205
1205
  ) {
1206
1206
  const { eventId, jsonParam, eventLevel = 3, skuId, ...otherParams } = opts
1207
1207
  if (eventId && jsonParam) {
1208
1208
  if (/TerminatorNew_/.test(eventId + '')) {
1209
1209
  console.log('mini eventId==========', eventId)
1210
1210
  }
1211
1211
  const { etModelInfo, logBaseInfo } = jsonParam
1212
1212
  let getJsonParam = {}
1213
1213
  if (etModelInfo && logBaseInfo) {
1214
1214
  getJsonParam = logBaseInfo
1215
1215
  } else {
1216
1216
  if (Array.isArray(jsonParam)){
1217
1217
  getJsonParam = jsonParam
1218
1218
  } else {
1219
1219
  getJsonParam = Object.assign(
1220
1220
  {},
1221
1221
  {
1222
1222
  shopid: global.info.queryInfo?.shopId,
1223
1223
  },
1224
1224
  jsonParam,
1225
1225
  )
1226
1226
  }
1227
1227
  }
1228
1228
  if(clickKey === 'exposure' && /^TerminatorNew/.test(eventId) && !Array.isArray(getJsonParam)){
1229
1229
  getJsonParam = [getJsonParam]
1230
1230
  }
1231
1231
  const miniLogParams = {
1232
1232
  eid: eventId,
1233
1233
  elevel: eventLevel,
1234
1234
  eparam: JSON.stringify(getJsonParam),
1235
1235
  pageId: this.logPageId,
1236
1236
  pname: this.logPname,
1237
1237
  pparam: JSON.stringify(this.routerInfo.params),
1238
1238
  target: this.routerInfo.path,
1239
1239
  event: this.nativeEvent,
1240
1240
  ...otherParams,
1241
1241
  }
1242
1242
  if (clickKey === 'addToCart' && skuId) {
1243
1243
  miniLogParams['shoppingList'] = {
1244
1244
  [skuId]: 1,
1245
1245
  }
1246
1246
  }
1247
1247
  return new Promise((resolve) => {
1248
1248
  global.miniAppLogInstance &&
1249
1249
  global.miniAppLogInstance[clickKey](miniLogParams)
1250
1250
  setTimeout(() => {
1251
1251
  resolve(true)
1252
1252
  }, 300)
1253
1253
  })
1254
1254
  } else {
1255
1255
  console.log('暂无埋点参数eventId和eventParam')
1256
1256
  return Promise.resolve(false)
1257
1257
  }
1258
1258
  }
1259
1259
 
1260
1260
  exposureEventLog(opts: JumpEventReportInterFace.OptEventLogParams = {}) {
1261
1261
  return this.clickEventLog(opts, 'exposure')
1262
1262
  }