@conecli/cone-render 0.10.1-isv2.4 → 0.10.1-isv3.1

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