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

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 (56) 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/index.weapp.ts +1 -1
  5. package/dist/common/sgmCustomCode.ts +1 -1
  6. package/dist/components/ErrorBoundary.tsx +1 -1
  7. package/dist/components/base/CustomScrollView/index.tsx +1 -1
  8. package/dist/components/base/CustomVideo/index.tsx +1 -1
  9. package/dist/components/base/ExposureSmart/index.tsx +1 -1
  10. package/dist/components/base/InOrOutViewObserver/index.tsx +1 -1
  11. package/dist/components/base/InViewRender/index.weapp.tsx +1 -1
  12. package/dist/components/base/LazyLayoutLoad/index.tsx +1 -1
  13. package/dist/components/base/LazyLayoutLoad/index.weapp.tsx +1 -1
  14. package/dist/components/base/LazyLoadImage/index.h5.module.scss +3 -0
  15. package/dist/components/base/LazyLoadImage/index.h5.tsx +1 -1
  16. package/dist/components/base/MobileCommonHeader/index.module.scss +8 -0
  17. package/dist/components/base/MobileCommonHeader/index.tsx +1 -1
  18. package/dist/components/base/NetworkDataError/index.module.scss +3 -0
  19. package/dist/components/base/NetworkDataError/index.tsx +1 -1
  20. package/dist/components/decorate/DecorateFloorModule/index.module.scss +11 -0
  21. package/dist/components/decorate/DecorateFloorModule/index.tsx +1 -1
  22. package/dist/components/decorate/EmptyFloorModule/index.tsx +1 -1
  23. package/dist/components/decorate/PlaceHolder/index.tsx +1 -1
  24. package/dist/components/floorItem.tsx +1 -1
  25. package/dist/components/remoteFloorItem.tsx +1 -1
  26. package/dist/interface/common.ts +1 -1
  27. package/dist/interface/component.ts +1 -1
  28. package/dist/interface/jumpEventReport.ts +1 -1
  29. package/dist/interface/service.ts +1 -1
  30. package/dist/jumpEventReport/base.ts +1 -1
  31. package/dist/jumpEventReport/const.ts +1 -1
  32. package/dist/jumpEventReport/jdJumpJdApp.ts +1 -1
  33. package/dist/jumpEventReport/jumpUrlConfig/base.ts +1 -1
  34. package/dist/jumpEventReport/logEventConfig.ts +1 -1
  35. package/dist/jumpEventReport/web.base.ts +1 -1
  36. package/dist/jumpEventReport/web.jd.ts +1 -1
  37. package/dist/jumpEventReport/web.wxapp.ts +1 -1
  38. package/dist/modules/ContainerFloorList/index.h5.module.scss +1 -0
  39. package/dist/modules/ContainerFloorList/index.h5.tsx +1 -1
  40. package/dist/open/api/device.ts +1 -1
  41. package/dist/open/api/request.ts +1 -1
  42. package/dist/open/api/shopMember.ts +1 -1
  43. package/dist/open/api/util.ts +1 -1
  44. package/dist/open/components/index.ts +1 -1
  45. package/dist/sass/app.h5.scss +5 -0
  46. package/dist/sass/base.scss +45 -0
  47. package/dist/service/requestServer.ts +1 -1
  48. package/dist/utils/connectNativeJsBridge.ts +1 -1
  49. package/dist/utils/h5Utils.ts +1 -1
  50. package/dist/utils/index.h5.ts +1 -1
  51. package/dist/utils/index.ts +1 -1
  52. package/dist/utils/index.weapp.ts +1 -1
  53. package/dist/utils/sgmCodeUtils.ts +1 -1
  54. package/dist/utils/taroRenderUtil.ts +1 -1
  55. package/dist/utils/utils.ts +1 -1
  56. package/package.json +24 -23
@@ -1 +1 @@
1
- import Taro from '@tarojs/taro'
2
1
  APPID,
3
2
  JshopxColorFunctionIdList,
4
3
  PagesColorFunctionIdList,
5
4
  PAGES_DOMAIN,
6
5
  B2BColorFunctionIdList,
7
6
  MobileVerifyColorList,
8
7
  AppVerifyColorList,
9
8
  JshopxVerifyColorList,
10
9
  BMallVerifyColorList,
11
10
  shopMemberColorFunctionIdList
12
11
  cookiesStr: '',
13
12
  requestHeaderContentType: {
14
13
  jsonHeader: {
15
14
  'content-type': 'application/json;charset=utf-8',
16
15
  },
17
16
  formDataHeader: {
18
17
  'content-type': 'application/x-www-form-urlencoded',
19
18
  },
20
19
  },
21
20
  requestBaseParam: {
22
21
  data: null,
23
22
  header: {
24
23
  'content-type': 'application/json;charset=utf-8',
25
24
  },
26
25
  },
27
26
  timeOut: 7000,
28
27
  apiClientParams: {
29
28
  clientVersion:
30
29
  isJdApp && jdAppVersionStr !== '' ? jdAppVersionStr : '11.0.0',
31
30
  client: isJdApp ? (isIosDevice ? 'apple' : 'android') : isPc ? 'pc' : 'wh5',
32
31
  area: '1_72_2799_0',
33
32
  screen: `${Math.ceil(window.screen?.width * devicePixelRatio)}*${Math.ceil(window.screen?.height * devicePixelRatio)}`,
34
33
  uuid: UUID,
35
34
  },
36
35
  public addressFetchInfo: {
37
36
  reqState: boolean
38
37
  promiseInstance: null | Promise<any>
39
38
  }
40
39
  public getPromotionConfig: {
41
40
  projectId: null | string | number
42
41
  pageId: null | string | number
43
42
  }
44
43
  public resInfo: ServiceInterFace.HttpRequestInfo
45
44
  public api: ServiceInterFace.HttpApi
46
45
  public isPageDomain: boolean
47
46
  public verifyColorList: string[]
48
47
  constructor(opt) {
49
48
  this._init()
50
49
  this.addressFetchInfo = {
51
50
  reqState: false,
52
51
  promiseInstance: null,
53
52
  }
54
53
  this.getPromotionConfig = {
55
54
  projectId: null,
56
55
  pageId: null,
57
56
  }
58
57
  this._userAreaUpdateListen()
59
58
  this.resInfo = this._getResConfig(opt)
60
59
  this.api = api
61
60
  this.isPageDomain = isH5 ? window?.location?.hostname === PAGES_DOMAIN : false
62
61
  this.verifyColorList = [
63
62
  ...MobileVerifyColorList,
64
63
  ...AppVerifyColorList,
65
64
  ...JshopxVerifyColorList,
66
65
  ...BMallVerifyColorList,
67
66
  ]
68
67
  }
69
68
  _init(): void {
70
69
  httpInterceptors.forEach((item) => {
71
70
  Taro.addInterceptor((chain) => item(chain))
72
71
  })
73
72
  }
74
73
  _getResConfig(opt = {}): ServiceInterFace.HttpRequestInfo {
75
74
  return Object.assign({}, DefaultConfig, opt)
76
75
  }
77
76
 
78
77
  _userAreaUpdateListen() {
79
78
  Taro.eventCenter.on(TaroEventType.USER_AREA_UPDATE, (area) => {
80
79
  this.updateApiClientParamsResInfo({
81
80
  area,
82
81
  })
83
82
  })
84
83
  }
85
84
  updateApiClientParamsResInfo(opt = {}) {
86
85
  this.resInfo.apiClientParams = {
87
86
  ...this.resInfo.apiClientParams,
88
87
  ...opt,
89
88
  }
90
89
  }
91
90
 
92
91
  checkFunctionIdToReturnAppId(functionId) {
93
92
  if (JshopxColorFunctionIdList.includes(functionId)) {
94
93
  return APPID.JSHOPX_COLOR_APPID
95
94
  } else if (
96
95
  this.isPageDomain &&
97
96
  PagesColorFunctionIdList.includes(functionId)
98
97
  ) {
99
98
  return APPID.PAGES_COLOR_APPID
100
99
  } else if (shopMemberColorFunctionIdList.includes(functionId)) {
101
100
  return APPID.SHOP_MEMBER_COLOR_APPID
102
101
  }else if (B2BColorFunctionIdList.includes(functionId)) {
103
102
  return APPID.B2B_COLOR_APPID
104
103
  } else if (isPc) {
105
104
  return APPID.MALL_COLOR_APPID
106
105
  } else {
107
106
  return APPID.SHOP_COLOR_APPID
108
107
  }
109
108
  }
110
109
 
111
110
  gatewayReq(
112
111
  functionId: string,
113
112
  bodyParams = {},
114
113
  clientParams = {},
115
114
  ): Promise<any> {
116
115
  if (
117
116
  functionId === 'receiveShopCoupon' &&
118
117
  ((isH5 && (window?.isJingGouMiniViewState || window?.isJingxiMiniViewState)) || isWxMinAndWxapp)
119
118
  ) {
120
119
  clientParams = Object.assign(
121
120
  {},
122
121
  {
123
122
  loginType: '1',
124
123
  loginWQBiz: WXAPP_BIZ_KEY,
125
124
  },
126
125
  clientParams,
127
126
  )
128
127
  }
129
128
  const apiClientParams = Object.assign(
130
129
  {},
131
130
  this.resInfo.apiClientParams,
132
131
  clientParams,
133
132
  )
134
133
  typeof apiClientParams.appid === 'undefined' && (apiClientParams.appid = this.checkFunctionIdToReturnAppId(functionId))
135
134
  const isColorVerify = this.verifyColorList.includes(functionId)
136
135
  const getReqData = {
137
136
  functionId: functionId,
138
137
  body: JSON.stringify(bodyParams),
139
138
  t: Date.now(),
140
139
  ...apiClientParams,
141
140
  }
142
141
  return http
143
142
  .request({
144
143
  url: this.api.apiFunc,
145
144
  data: getReqData,
146
145
  isColorVerify,
147
146
  })
148
147
  .then((res: ServiceInterFace.RequestPromiseRes) => {
149
148
  const { statusCode, data } = res
150
149
  let changeRes: ServiceInterFace.RequestResponseFormatRes = {
151
150
  ok: true,
152
151
  }
153
152
  if (statusCode === 200 && data) {
154
153
  const resCode = Object.prototype.hasOwnProperty.call(res.data, 'code')
155
154
  ? Number(res.data.code)
156
155
  : -1
157
156
  const subCode = Object.prototype.hasOwnProperty.call(
158
157
  res.data,
159
158
  'subCode',
160
159
  )
161
160
  ? Number(res.data.subCode)
162
161
  : -1
163
162
  if (
164
163
  data.success === true ||
165
164
  data.isSuccess ||
166
165
  resCode === 0 ||
167
166
  resCode === 200 ||
168
167
  subCode === 0
169
168
  ) {
170
169
  changeRes = {
171
170
  result: Object.prototype.hasOwnProperty.call(data, 'result')
172
171
  ? data.result
173
172
  : Object.prototype.hasOwnProperty.call(data, 'data')
174
173
  ? data.data
175
174
  : data,
176
175
  code: data.code || 200,
177
176
  ok: true,
178
177
  source: data,
179
178
  }
180
179
  return changeRes
181
180
  } else {
182
181
  changeRes = {
183
182
  ...data,
184
183
  ok: false,
185
184
  statusCode: res.statusCode,
186
185
  }
187
186
  return changeRes
188
187
  }
189
188
  } else {
190
189
  changeRes = {
191
190
  ...data,
192
191
  ok: false,
193
192
  statusCode: res.statusCode,
194
193
  }
195
194
  return changeRes
196
195
  }
197
196
  })
198
197
  .catch((res) => {
199
198
  return {
200
199
  ...res,
201
200
  ok: false,
202
201
  } as ServiceInterFace.RequestResponseFormatRes
203
202
  })
204
203
  }
205
204
 
206
205
  async receiveCoupon(param = {}, clientParams) {
207
206
  const loginType = isPc ? { loginType: 3 } : {}
208
207
  return await this.gatewayReq(
209
208
  'receiveShopCoupon',
210
209
  {
211
210
  operation: '3',
212
211
  ...param,
213
212
  },
214
213
  { ...loginType, ...clientParams },
215
214
  )
216
215
  }
217
216
 
218
217
  getCustomerCenterDispatch(params = {}) {
219
218
  return this.gatewayReq('customerCenterDispatch', params, {
220
219
  clientVersion: '9.2.0',
221
220
  client: 'H5',
222
221
  uuid: 88888,
223
222
  appid: 'shopmember_m_jd_com',
224
223
  })
225
224
  }
226
225
  bMallGetUserInfo = () => {
227
226
  return getBMallUserInfo()
228
227
  }
229
228
  async bMallAddCart(params = {}) {
230
229
  return await this.gatewayReq('bmall_cartAdd', params, {
231
230
  client: 'H5',
232
231
  clientVersion: '5.5.0'
233
232
  })
234
233
  }
235
234
  async bMallChangeCart(params = {}) {
236
235
  return await this.gatewayReq('bmall_cartChange', params, {
237
236
  client: 'H5',
238
237
  clientVersion: '5.5.0'
239
238
  })
240
239
  }
241
240
  async bMallRemoveCart(params = {}) {
242
241
  return await this.gatewayReq(
243
242
  'bmall_cartRemove',
244
243
  params,
245
244
  {
246
245
  client: 'H5',
247
246
  clientVersion: '5.5.0'
248
247
  },
249
248
  )
250
249
  }
251
250
  async bMallGetOmittedProduct(params = {}) {
252
251
  return await this.gatewayReq('bmall_getOmittedProduct', params, {
253
252
  client: 'H5',
254
253
  clientVersion: '5.5.0'
255
254
  })
256
255
  }
257
256
  async bMallAddCartService({ skuId, bMallTag, num, data = {} }) {
258
257
  const params = await getParams({ ...data, skuId, bMallTag, num })
259
258
  return await this.bMallAddCart(params)
260
259
  }
261
260
  async bMallGetSkuNumService(bMallTag = 1) {
262
261
  const params = await getParams({ bMallTag })
263
262
  delete params.operations
264
263
  return await this.bMallGetOmittedProduct(params)
265
264
  }
266
265
  async bMallRemoveCartService({ skuId, bMallTag, num, skuUuid, data = {} }) {
267
266
  let params = await getParams({ ...data, skuId, bMallTag, num, skuUuid })
268
267
  return await this.bMallRemoveCart(params)
269
268
  }
270
269
  async bMallChangeCartService({ skuId, bMallTag, num, skuUuid, data = {} }) {
271
270
  let params = await getParams({ ...data, skuId, bMallTag, num, skuUuid })
272
271
  return await this.bMallChangeCart(params)
273
272
  }
274
273
 
275
274
  async bMallGetSkuNumApi(needRequest = false, bMallTag = 1) {
276
275
  if (!needRequest && isH5 && window?.bMallCartData) {
277
276
  return window?.bMallCartData
278
277
  }
279
278
  const cartData = await this.bMallGetSkuNumService(bMallTag)
280
279
  let items
281
280
  if (cartData.ok && cartData.result) {
282
281
  items = cartData?.result?.items || {}
283
282
  }
284
283
  if (isH5) {
285
284
  window.bMallCartData = items
286
285
  }
287
286
  return items
288
287
  }
289
288
 
290
289
  async bMallCartHandle(goodItem, num) {
291
290
  try {
292
291
  const {
293
292
  skuUuid,
294
293
  limitUpper,
295
294
  limitLower,
296
295
  } = goodItem
297
296
  let cartNum = Number(num)
298
297
  if (limitLower && cartNum && cartNum < limitLower) {
299
298
  cartNum = limitLower
300
299
  } else if (limitUpper && cartNum && cartNum > limitUpper) {
301
300
  cartNum = limitUpper
302
301
  }
303
302
  if (skuUuid && cartNum > 0) {
304
303
  return this.bMallChangeCartService({
305
304
  ...goodItem,
306
305
  skuUuid,
307
306
  num: cartNum,
308
307
  })
309
308
  } else if (!skuUuid && cartNum > 0) {
310
309
  return this.bMallAddCartService({ ...goodItem, num: cartNum })
311
310
  } else if (skuUuid && !cartNum) {
312
311
  return this.bMallRemoveCartService({
313
312
  ...goodItem,
314
313
  skuUuid,
315
314
  num: cartNum,
316
315
  })
317
316
  } else {
318
317
  console.error('参数不全')
319
318
  return false
320
319
  }
321
320
  } catch (e) {
322
321
  console.error(e)
323
322
  }
324
323
  }
324
+ import Taro from '@tarojs/taro'
325
325
  APPID,
326
326
  JshopxColorFunctionIdList,
327
327
  PagesColorFunctionIdList,
328
328
  PAGES_DOMAIN,
329
329
  B2BColorFunctionIdList,
330
330
  MobileVerifyColorList,
331
331
  AppVerifyColorList,
332
332
  JshopxVerifyColorList,
333
333
  BMallVerifyColorList,
334
334
  shopMemberColorFunctionIdList,
335
335
  isJdApp,
336
336
  isIosDevice,
337
337
  isAndroidDevice,
338
338
  showSuccessToast,
339
339
  showFailToast,
340
340
  isH5,
341
341
  isWxMinAndWxapp,
342
342
  isMin,
343
343
  isPc,
344
344
  callRouterIOS,
345
345
  callRouterAndroid,
346
346
  cookiesStr: '',
347
347
  requestHeaderContentType: {
348
348
  jsonHeader: {
349
349
  'content-type': 'application/json;charset=utf-8',
350
350
  },
351
351
  formDataHeader: {
352
352
  'content-type': 'application/x-www-form-urlencoded',
353
353
  },
354
354
  },
355
355
  requestBaseParam: {
356
356
  data: null,
357
357
  header: {
358
358
  'content-type': 'application/json;charset=utf-8',
359
359
  },
360
360
  },
361
361
  timeOut: 7000,
362
362
  apiClientParams: {
363
363
  clientVersion:
364
364
  isJdApp && jdAppVersionStr !== '' ? jdAppVersionStr : '11.0.0',
365
365
  client: isJdApp ? (isIosDevice ? 'apple' : 'android') : isPc ? 'pc' : 'wh5',
366
366
  area: '1_72_2799_0',
367
367
  screen: `${Math.ceil(window.screen?.width * devicePixelRatio)}*${Math.ceil(
368
368
  window.screen?.height * devicePixelRatio,
369
369
  )}`,
370
370
  uuid: UUID,
371
371
  },
372
372
  public addressFetchInfo: {
373
373
  reqState: boolean
374
374
  promiseInstance: null | Promise<any>
375
375
  }
376
376
  public getPromotionConfig: {
377
377
  projectId: null | string | number
378
378
  pageId: null | string | number
379
379
  }
380
380
  public resInfo: ServiceInterFace.HttpRequestInfo
381
381
  public api: ServiceInterFace.HttpApi
382
382
  public isPageDomain: boolean
383
383
  public verifyColorList: string[]
384
384
  constructor(opt) {
385
385
  this._init()
386
386
  this.addressFetchInfo = {
387
387
  reqState: false,
388
388
  promiseInstance: null,
389
389
  }
390
390
  this.getPromotionConfig = {
391
391
  projectId: null,
392
392
  pageId: null,
393
393
  }
394
394
  this._userAreaUpdateListen()
395
395
  this.resInfo = this._getResConfig(opt)
396
396
  this.api = api
397
397
  this.isPageDomain = isH5
398
398
  ? window?.location?.hostname === PAGES_DOMAIN
399
399
  : false
400
400
  this.verifyColorList = [
401
401
  ...MobileVerifyColorList,
402
402
  ...AppVerifyColorList,
403
403
  ...JshopxVerifyColorList,
404
404
  ...BMallVerifyColorList,
405
405
  ]
406
406
  }
407
407
  _init(): void {
408
408
  httpInterceptors.forEach((item) => {
409
409
  Taro.addInterceptor((chain) => item(chain))
410
410
  })
411
411
  }
412
412
  _getResConfig(opt = {}): ServiceInterFace.HttpRequestInfo {
413
413
  return Object.assign({}, DefaultConfig, opt)
414
414
  }
415
415
 
416
416
  _userAreaUpdateListen() {
417
417
  Taro.eventCenter.on(TaroEventType.USER_AREA_UPDATE, (area) => {
418
418
  this.updateApiClientParamsResInfo({
419
419
  area,
420
420
  })
421
421
  })
422
422
  }
423
423
  updateApiClientParamsResInfo(opt = {}) {
424
424
  this.resInfo.apiClientParams = {
425
425
  ...this.resInfo.apiClientParams,
426
426
  ...opt,
427
427
  }
428
428
  }
429
429
 
430
430
  checkFunctionIdToReturnAppId(functionId) {
431
431
  if (JshopxColorFunctionIdList.includes(functionId)) {
432
432
  return APPID.JSHOPX_COLOR_APPID
433
433
  } else if (
434
434
  this.isPageDomain &&
435
435
  PagesColorFunctionIdList.includes(functionId)
436
436
  ) {
437
437
  return APPID.PAGES_COLOR_APPID
438
438
  } else if (shopMemberColorFunctionIdList.includes(functionId)) {
439
439
  return APPID.SHOP_MEMBER_COLOR_APPID
440
440
  } else if (B2BColorFunctionIdList.includes(functionId)) {
441
441
  return APPID.B2B_COLOR_APPID
442
442
  } else if (isPc) {
443
443
  return APPID.MALL_COLOR_APPID
444
444
  } else {
445
445
  return APPID.SHOP_COLOR_APPID
446
446
  }
447
447
  }
448
448
 
449
449
  gatewayReq(
450
450
  functionId: string,
451
451
  bodyParams = {},
452
452
  clientParams = {},
453
453
  ): Promise<any> {
454
454
  if (
455
455
  functionId === 'receiveShopCoupon' &&
456
456
  ((isH5 &&
457
457
  (window?.isJingGouMiniViewState || window?.isJingxiMiniViewState)) ||
458
458
  isWxMinAndWxapp)
459
459
  ) {
460
460
  clientParams = Object.assign(
461
461
  {},
462
462
  {
463
463
  loginType: '1',
464
464
  loginWQBiz: WXAPP_BIZ_KEY,
465
465
  },
466
466
  clientParams,
467
467
  )
468
468
  }
469
469
  const apiClientParams = Object.assign(
470
470
  {},
471
471
  this.resInfo.apiClientParams,
472
472
  clientParams,
473
473
  )
474
474
  typeof apiClientParams.appid === 'undefined' &&
475
475
  (apiClientParams.appid = this.checkFunctionIdToReturnAppId(functionId))
476
476
  const isColorVerify = this.verifyColorList.includes(functionId)
477
477
  const getReqData = {
478
478
  functionId: functionId,
479
479
  body: JSON.stringify(bodyParams),
480
480
  t: Date.now(),
481
481
  ...apiClientParams,
482
482
  }
483
483
  return http
484
484
  .request({
485
485
  url: this.api.apiFunc,
486
486
  data: getReqData,
487
487
  isColorVerify,
488
488
  })
489
489
  .then((res: ServiceInterFace.RequestPromiseRes) => {
490
490
  const { statusCode, data } = res
491
491
  let changeRes: ServiceInterFace.RequestResponseFormatRes = {
492
492
  ok: true,
493
493
  }
494
494
  if (statusCode === 200 && data) {
495
495
  const resCode = Object.prototype.hasOwnProperty.call(res.data, 'code')
496
496
  ? Number(res.data.code)
497
497
  : -1
498
498
  const subCode = Object.prototype.hasOwnProperty.call(
499
499
  res.data,
500
500
  'subCode',
501
501
  )
502
502
  ? Number(res.data.subCode)
503
503
  : -1
504
504
  if (
505
505
  data.success === true ||
506
506
  data.isSuccess ||
507
507
  resCode === 0 ||
508
508
  resCode === 200 ||
509
509
  subCode === 0
510
510
  ) {
511
511
  changeRes = {
512
512
  result: Object.prototype.hasOwnProperty.call(data, 'result')
513
513
  ? data.result
514
514
  : Object.prototype.hasOwnProperty.call(data, 'data')
515
515
  ? data.data
516
516
  : data,
517
517
  code: data.code || 200,
518
518
  ok: true,
519
519
  source: data,
520
520
  }
521
521
  return changeRes
522
522
  } else {
523
523
  changeRes = {
524
524
  ...data,
525
525
  ok: false,
526
526
  statusCode: res.statusCode,
527
527
  }
528
528
  return changeRes
529
529
  }
530
530
  } else {
531
531
  changeRes = {
532
532
  ...data,
533
533
  ok: false,
534
534
  statusCode: res.statusCode,
535
535
  }
536
536
  return changeRes
537
537
  }
538
538
  })
539
539
  .catch((res) => {
540
540
  return {
541
541
  ...res,
542
542
  ok: false,
543
543
  } as ServiceInterFace.RequestResponseFormatRes
544
544
  })
545
545
  }
546
546
 
547
547
  async receiveCoupon(param = {}, clientParams) {
548
548
  const loginType = isPc ? { loginType: 3 } : {}
549
549
  return await this.gatewayReq(
550
550
  'receiveShopCoupon',
551
551
  {
552
552
  operation: '3',
553
553
  ...param,
554
554
  },
555
555
  { ...loginType, ...clientParams },
556
556
  )
557
557
  }
558
558
 
559
559
  getCustomerCenterDispatch(params = {}) {
560
560
  return this.gatewayReq('customerCenterDispatch', params, {
561
561
  clientVersion: '9.2.0',
562
562
  client: 'H5',
563
563
  uuid: 88888,
564
564
  appid: 'shopmember_m_jd_com',
565
565
  })
566
566
  }
567
567
 
568
568
  batchAddCart(skuIdsStr, num = 1, showToast = true) {
569
569
  if (skuIdsStr) {
570
570
  return this._addShopGoodCart(`${skuIdsStr}`, `${num}`)
571
571
  .then((res: ServiceInterFace.SkuToCartDataRes) => {
572
572
  if (res?.ok) {
573
573
  if (showToast && !res?.isOpenApp)
574
574
  showSuccessToast({
575
575
  title: '加入购物车成功',
576
576
  })
577
577
  } else {
578
578
  showToast &&
579
579
  showFailToast({
580
580
  title: res?.errMsg || '加入购物车失败,请稍后重试!',
581
581
  })
582
582
  }
583
583
  return Promise.resolve(res)
584
584
  })
585
585
  .catch((e) => {
586
586
  console.log('调用加购方法异常=======>', e)
587
587
  return Promise.resolve({
588
588
  ok: false,
589
589
  msg: '加入购物车失败,请稍后重试!',
590
590
  })
591
591
  })
592
592
  } else {
593
593
  return Promise.resolve({
594
594
  ok: false,
595
595
  msg: '加入购物车失败,请稍后重试!',
596
596
  })
597
597
  }
598
598
  }
599
599
 
600
600
  _addShopGoodCart(skuIdsStr, addCardNum = '1') {
601
601
  return new Promise((resolve) => {
602
602
  const productIdsArr = skuIdsStr ? `${skuIdsStr}`.split(',') : []
603
603
  if (productIdsArr.length > 0) {
604
604
  if (isJdApp) {
605
605
  console.log('==========>', '原生批量加车!')
606
606
  const nativeAddCartCallBack = `nativeBatchAddCart${Date.now()}`
607
607
  if (!window[nativeAddCartCallBack]) {
608
608
  window[nativeAddCartCallBack] = (res) => {
609
609
  const getMessageJsonData =
610
610
  typeof res === 'string' ? JSON.parse(res) : res
611
611
  console.info(
612
612
  '获取批量加车原始数据',
613
613
  res,
614
614
  '====转换后的json数据为===',
615
615
  getMessageJsonData,
616
616
  )
617
617
  try {
618
618
  if (isAndroidDevice) {
619
619
  getMessageJsonData?.status === '0'
620
620
  ? resolve({
621
621
  ok: true,
622
622
  msg: '已加入购物车!',
623
623
  })
624
624
  : resolve({
625
625
  ok: false,
626
626
  msg: '加购失败,请稍后重试',
627
627
  })
628
628
  } else if (isIosDevice) {
629
629
  getMessageJsonData?.status === '0' &&
630
630
  getMessageJsonData?.data?.code === 0
631
631
  ? resolve({
632
632
  ok: true,
633
633
  msg: '已加入购物车!',
634
634
  })
635
635
  : resolve({
636
636
  ok: false,
637
637
  msg: '批量加车失败,请稍后重试',
638
638
  })
639
639
  } else {
640
640
  resolve({
641
641
  ok: false,
642
642
  msg: '加购失败,请稍后重试',
643
643
  })
644
644
  }
645
645
  } catch (e) {
646
646
  resolve({
647
647
  ok: false,
648
648
  msg: '加购失败,请稍后重试',
649
649
  })
650
650
  console.warn('批量加车转换数据异常', e)
651
651
  }
652
652
  window[nativeAddCartCallBack] = null
653
653
  }
654
654
  }
655
655
  const productsAddCartList = productIdsArr.map((skuItem) => {
656
656
  return isAndroidDevice
657
657
  ? {
658
658
  sku: skuItem,
659
659
  num: addCardNum,
660
660
  }
661
661
  : {
662
662
  productCode: skuItem,
663
663
  buyCount: addCardNum,
664
664
  }
665
665
  })
666
666
  if (isAndroidDevice) {
667
667
  callRouterAndroid({
668
668
  routerURL: `router:
669
669
  productsAddCartList,
670
670
  )}&businessName=storeModel`,
671
671
  routerParam: {
672
672
  wareList: productsAddCartList,
673
673
  },
674
674
  callBackName: nativeAddCartCallBack,
675
675
  })
676
676
  } else if (isIosDevice) {
677
677
  if (jdAppVersionCompare('12.4.0') === -1) {
678
678
  const lowVersionAppList = productIdsArr.map((skuItem) => {
679
679
  return {
680
680
  sku: skuItem,
681
681
  num: addCardNum,
682
682
  }
683
683
  })
684
684
  const lowVersionAppListStr = JSON.stringify(lowVersionAppList)
685
685
  const url = `openApp.jdMobile://virtual?params={"category":"jump","des":"updateCartNum","sourceValue":"店铺批量加购","sourceType":"h5","businessName":"storeModel","wareList":${lowVersionAppListStr}}`
686
686
  jump.side.jdJumpToWeb(url, {})
687
687
  resolve({
688
688
  ok: true,
689
689
  isOpenApp: true,
690
690
  msg: '加购完成, 加购结果请点击购物车确认',
691
691
  })
692
692
  } else {
693
693
  callRouterIOS({
694
694
  routerURL: 'router://JDCartModule/batchAddService',
695
695
  routerParam: {
696
696
  sourceType: 'h5',
697
697
  sourceValue: '店铺批量加购',
698
698
  businessName: 'storeModel',
699
699
  isNewMode: '1',
700
700
  NotPassWebview: '1',
701
701
  products: productsAddCartList,
702
702
  },
703
703
  callBackName: nativeAddCartCallBack,
704
704
  })
705
705
  }
706
706
  }
707
707
  } else if (isMin) {
708
708
  console.log('==========>', '京购批量加车!')
709
709
  const productsAddCartList = productIdsArr.map((skuItem) => {
710
710
  return {
711
711
  skuId: skuItem,
712
712
  buyNum: addCardNum,
713
713
  }
714
714
  })
715
715
  global.wxAppBizInstance
716
716
  .addCart({ commAr: productsAddCartList })
717
717
  .then((res) => {
718
718
  console.log('dealCartSuccess: ', res)
719
719
  resolve({
720
720
  ok: true,
721
721
  msg: '已加入购物车!',
722
722
  data: res,
723
723
  })
724
724
  })
725
725
  .catch((e) => {
726
726
  console.log('京购小程序批量加车失败dealCartFail: ', e)
727
727
  resolve({
728
728
  ok: false,
729
729
  msg: '加购失败,请稍后重试',
730
730
  })
731
731
  })
732
732
  } else {
733
733
  console.log('==========>', 'M站批量加车!')
734
734
  return this.productAddToCart(skuIdsStr, addCardNum).then((res) =>
735
735
  resolve(res),
736
736
  )
737
737
  }
738
738
  } else {
739
739
  resolve({
740
740
  ok: false,
741
741
  msg: '加购sku不能为空',
742
742
  })
743
743
  }
744
744
  })
745
745
  }
746
746
 
747
747
  productAddToCart(skuIdsStr, num) {
748
748
  return new Promise((resolve) => {
749
749
  if (window.AddcartToolObj) {
750
750
  window.AddcartToolObj.addCart({
751
751
  skuId: skuIdsStr,
752
752
  num,
753
753
  source: 'sjdpyw',
754
754
  actId: '1',
755
755
  loginType: window?.isJingGouMiniViewState ? '11' : '2',
756
756
  sucFun(res) {
757
757
  console.log(
758
758
  'ok,接口请求成功,不一定指的加车成功,加车成功需要看返回码errId为0',
759
759
  res,
760
760
  )
761
761
  if (res.errId === '0' && res.cartJson) {
762
762
  resolve({
763
763
  ok: true,
764
764
  msg: '已加入购物车!',
765
765
  ...res,
766
766
  })
767
767
  } else {
768
768
  if (res.errId === '13') {
769
769
  global.doLogin()
770
770
  } else {
771
771
  resolve({
772
772
  ok: false,
773
773
  msg: '加购失败,请稍后重试',
774
774
  ...res,
775
775
  })
776
776
  }
777
777
  }
778
778
  },
779
779
  failFun(err) {
780
780
  console.log('fail', err)
781
781
  resolve({
782
782
  ok: false,
783
783
  msg: '加购失败,请稍后重试',
784
784
  ...err,
785
785
  })
786
786
  },
787
787
  })
788
788
  } else {
789
789
  resolve({
790
790
  ok: false,
791
791
  msg: '购物车方法检查异常',
792
792
  })
793
793
  }
794
794
  })
795
795
  }
796
796
  bMallGetUserInfo = () => {
797
797
  return getBMallUserInfo()
798
798
  }
799
799
  async bMallAddCart(params = {}) {
800
800
  return await this.gatewayReq('bmall_cartAdd', params, {
801
801
  client: 'H5',
802
802
  clientVersion: '5.5.0',
803
803
  })
804
804
  }
805
805
  async bMallChangeCart(params = {}) {
806
806
  return await this.gatewayReq('bmall_cartChange', params, {
807
807
  client: 'H5',
808
808
  clientVersion: '5.5.0',
809
809
  })
810
810
  }
811
811
  async bMallRemoveCart(params = {}) {
812
812
  return await this.gatewayReq(
813
813
  'bmall_cartRemove',
814
814
  params,
815
815
  {
816
816
  client: 'H5',
817
817
  clientVersion: '5.5.0',
818
818
  },
819
819
  )
820
820
  }
821
821
  async bMallGetOmittedProduct(params = {}) {
822
822
  return await this.gatewayReq('bmall_getOmittedProduct', params, {
823
823
  client: 'H5',
824
824
  clientVersion: '5.5.0',
825
825
  })
826
826
  }
827
827
  async bMallAddCartService({ skuId, bMallTag, num, data = {} }) {
828
828
  const params = await getParams({ ...data, skuId, bMallTag, num })
829
829
  return await this.bMallAddCart(params)
830
830
  }
831
831
  async bMallGetSkuNumService(bMallTag = 1) {
832
832
  const params = await getParams({ bMallTag })
833
833
  delete params.operations
834
834
  return await this.bMallGetOmittedProduct(params)
835
835
  }
836
836
  async bMallRemoveCartService({ skuId, bMallTag, num, skuUuid, data = {} }) {
837
837
  let params = await getParams({ ...data, skuId, bMallTag, num, skuUuid })
838
838
  return await this.bMallRemoveCart(params)
839
839
  }
840
840
  async bMallChangeCartService({ skuId, bMallTag, num, skuUuid, data = {} }) {
841
841
  let params = await getParams({ ...data, skuId, bMallTag, num, skuUuid })
842
842
  return await this.bMallChangeCart(params)
843
843
  }
844
844
 
845
845
  async bMallGetSkuNumApi(needRequest = false, bMallTag = 1) {
846
846
  if (!needRequest && isH5 && window?.bMallCartData) {
847
847
  return window?.bMallCartData
848
848
  }
849
849
  const cartData = await this.bMallGetSkuNumService(bMallTag)
850
850
  let items
851
851
  if (cartData.ok && cartData.result) {
852
852
  items = cartData?.result?.items || {}
853
853
  }
854
854
  if (isH5) {
855
855
  window.bMallCartData = items
856
856
  }
857
857
  return items
858
858
  }
859
859
 
860
860
  async bMallCartHandle(goodItem, num) {
861
861
  try {
862
862
  const {
863
863
  skuUuid,
864
864
  limitUpper,
865
865
  limitLower,
866
866
  } = goodItem
867
867
  let cartNum = Number(num)
868
868
  if (limitLower && cartNum && cartNum < limitLower) {
869
869
  cartNum = limitLower
870
870
  } else if (limitUpper && cartNum && cartNum > limitUpper) {
871
871
  cartNum = limitUpper
872
872
  }
873
873
  if (skuUuid && cartNum > 0) {
874
874
  return this.bMallChangeCartService({
875
875
  ...goodItem,
876
876
  skuUuid,
877
877
  num: cartNum,
878
878
  })
879
879
  } else if (!skuUuid && cartNum > 0) {
880
880
  return this.bMallAddCartService({ ...goodItem, num: cartNum })
881
881
  } else if (skuUuid && !cartNum) {
882
882
  return this.bMallRemoveCartService({
883
883
  ...goodItem,
884
884
  skuUuid,
885
885
  num: cartNum,
886
886
  })
887
887
  } else {
888
888
  console.error('参数不全')
889
889
  return false
890
890
  }
891
891
  } catch (e) {
892
892
  console.error(e)
893
893
  }
894
894
  }