@conecli/cone-render 0.10.1-shop3.8 → 0.10.1-shop3.80

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 (109) 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 +0 -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.ts +1 -1
  12. package/dist/common/jssdk.weapp.ts +1 -0
  13. package/dist/common/pageType.ts +1 -1
  14. package/dist/common/token/index.h5.ts +1 -1
  15. package/dist/common/token/token.jd.ts +1 -1
  16. package/dist/common/wxappApi.ts +1 -1
  17. package/dist/components/ErrorBoundary.tsx +1 -1
  18. package/dist/components/base/CommonFloorHead/index.tsx +1 -1
  19. package/dist/components/base/CountDown/index.tsx +1 -1
  20. package/dist/components/base/CustomScrollView/index.tsx +1 -1
  21. package/dist/components/base/CustomVideo/index.tsx +1 -1
  22. package/dist/components/base/CustomVideo/index.weapp.tsx +1 -0
  23. package/dist/components/base/ExposureSmart/index.h5.tsx +1 -1
  24. package/dist/components/base/ExposureSmart/reporter.tsx +1 -1
  25. package/dist/components/base/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.weapp.tsx +1 -0
  30. package/dist/components/base/NetworkDataError/const.ts +1 -1
  31. package/dist/components/base/NetworkDataError/index.module.scss +118 -72
  32. package/dist/components/base/NetworkDataError/index.tsx +1 -1
  33. package/dist/components/base/Price/Base/index.module.scss +12 -0
  34. package/dist/components/base/Price/Base/index.tsx +1 -1
  35. package/dist/components/base/Price/Double/index.module.scss +24 -0
  36. package/dist/components/base/Price/Double/index.tsx +1 -1
  37. package/dist/components/base/ShopLeGaoTag/index.h5.module.scss +35 -0
  38. package/dist/components/base/ShopLeGaoTag/index.h5.tsx +1 -0
  39. package/dist/components/base/ShopLeGaoTag/index.module.scss +33 -0
  40. package/dist/components/base/ShopLeGaoTag/index.tsx +1 -0
  41. package/dist/components/debug/DebugLayout/index.module.scss +2 -2
  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/interface/common.ts +1 -1
  46. package/dist/interface/component.ts +1 -1
  47. package/dist/interface/jumpEventReport.ts +1 -1
  48. package/dist/interface/service.ts +1 -1
  49. package/dist/jumpEventReport/base.ts +1 -1
  50. package/dist/jumpEventReport/const.ts +1 -1
  51. package/dist/jumpEventReport/createReportFloorData.ts +1 -1
  52. package/dist/jumpEventReport/index.h5.ts +1 -1
  53. package/dist/jumpEventReport/index.jd.ts +1 -1
  54. package/dist/jumpEventReport/index.weapp.ts +1 -1
  55. package/dist/jumpEventReport/jdJumpJdApp.ts +1 -1
  56. package/dist/jumpEventReport/jumpUrlConfig/base.ts +1 -1
  57. package/dist/jumpEventReport/logEventConfig.h5.ts +1 -0
  58. package/dist/jumpEventReport/logEventConfig.ts +1 -1
  59. package/dist/jumpEventReport/web/report.ts +1 -1
  60. package/dist/jumpEventReport/web.base.ts +1 -1
  61. package/dist/jumpEventReport/web.jd.ts +1 -1
  62. package/dist/jumpEventReport/web.pc.ts +1 -1
  63. package/dist/jumpEventReport/web.tjm.ts +1 -1
  64. package/dist/jumpEventReport/web.wxapp.ts +1 -1
  65. package/dist/language/en_US.json +274 -0
  66. package/dist/language/zh_CN.json +274 -0
  67. package/dist/language/zh_HK.json +274 -0
  68. package/dist/libs/openShopBridge.js +161 -0
  69. package/dist/libs/openShopBridge.min.js +1 -0
  70. package/dist/libs/taroAppReport.js +2 -2
  71. package/dist/modules/ContainerFloorList/index.h5.module.scss +16 -2
  72. package/dist/modules/ContainerFloorList/index.h5.tsx +1 -1
  73. package/dist/modules/ContainerFloorList/index.tsx +1 -1
  74. package/dist/modules/DecorateContainerFloorList/index.weapp.tsx +1 -0
  75. package/dist/open/api/environment.ts +1 -1
  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 +27 -1
  83. package/dist/service/fetchGateway.ts +1 -1
  84. package/dist/service/fetchGateway.weapp.ts +1 -1
  85. package/dist/service/fetchJsonp.weapp.ts +1 -0
  86. package/dist/service/http/const.ts +1 -1
  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.ts +1 -0
  100. package/dist/utils/log.ts +1 -0
  101. package/dist/utils/{sColor.js → sColor.ts} +1 -1
  102. package/dist/utils/sColor.weapp.ts +1 -0
  103. package/dist/utils/utils.ts +1 -1
  104. package/dist/wxapp/common/address_api/address_api_v2.js +1 -0
  105. package/dist/wxapp/common/user_info.js +1 -1
  106. package/package.json +162 -141
  107. package/dist/jumpEventReport/web/wqshop.report.ts +0 -1
  108. package/dist/utils/priceUtils.js +0 -1
  109. /package/dist/utils/{jumpExtMapUtil.js → jumpExtMapUtil.h5.ts} +0 -0
@@ -1 +1 @@
1
- import Taro from '@tarojs/taro';
2
1
  stopNativeScrollEvent,
3
2
  getAppChannelType,
4
3
  isAndroidDevice,
5
4
  isH5AndJdShopView,
6
5
  isChartH5,
7
6
  isH5AndJdShopViewNativeScroll,
8
7
  isIosDevice,
9
8
  isJdAndAndroidDevice,
10
9
  isJdAndIosDevice,
11
10
  isJdApp,
12
11
  isWxApp,
13
12
  isWxMiniH5View,
14
13
  isJdAndHarmonyDevice,
15
14
  isH5AndJingGouMini,
16
15
  urlCookie,
17
16
  sgmCustomReport,
18
17
  draCustomReport,
19
18
  remoteCustomReport,
20
19
  draInterfaceCustomReport,
21
20
  draBusinessCustomReport,
22
21
  isMemberPage,
23
22
  isH5AndJdShopViewH5Scroll,
24
23
  isH5AndJdShopH5CustomScrollView,
25
24
  isAppClassifyPage,
26
25
  isAppHomeForMarketPage,
27
26
  isPc,
28
27
  ipLoc_djd,
29
28
  jdAppVersionCompare,
30
29
  isTjScence,
31
30
  isH5AdnJxMini,
32
31
  isTjM,
33
32
  isTjJxM,
34
33
  isTJApp,
35
34
  isH5AdnHaoWuJie,
36
35
  tjChannel,
37
36
  dealNativePixelToCssPixel,
38
37
  isAppStowShop,
39
38
  isJdAndroidX5Core,
40
39
  parseQueryUrlObj,
41
40
  isIpadDevice,
42
41
  isTabletDevice,
43
42
  isJdTabletDevice,
44
43
  jdTabletDeviceInfo,
45
44
  isSupportHybridHttpRequest,
46
45
  isLanguageForEn,
47
46
  sColor,
48
47
  draInterfaceDSMCustomReport,
49
48
  addHttps,
50
49
  clearTaroStorageKey,
51
50
  countStringify as h5CountStringify,
52
51
  dateFormat,
53
52
  dealAddress,
54
53
  dealShopContentData as originDealShopContentData,
55
54
  debounce,
56
55
  filterUrlQueryData,
57
56
  formatTabActiveMenuType,
58
57
  getAvifSupport,
59
58
  getWebpSupport,
60
59
  getTaroStorageKeyValue,
61
60
  getWxAppCookieStr,
62
61
  isH5,
63
62
  isMin,
64
63
  isJdMin,
65
64
  isWxMin,
66
65
  isWxMinAndWxapp,
67
66
  isJdMinAndHarmony,
68
67
  lodashThrottle,
69
68
  objectToUrlEncode,
70
69
  parseQueryUrlString,
71
70
  removeTaroStorageKey,
72
71
  setLowSmallPicUrl,
73
72
  setTaroStorage,
74
73
  showFailToast,
75
74
  showNormalToast,
76
75
  showSuccessToast,
77
76
  sliceArrToChunkList,
78
77
  throttle,
79
78
  getQualityImageNew,
80
79
  getQualityImageOld,
81
80
  isOpenJdAppUrl,
82
81
  jdOpenAppParams,
83
82
  createJdOpenAppUrl,
84
83
  isEmpty,
85
84
  getJdAppReportPageSource,
86
85
  dealJdOpenAppData,
87
86
  getBorderStyle,
88
87
  const getNum = Number(num);
89
88
  let _changeLayoutWidth = layoutWidth;
90
89
  if (!_changeLayoutWidth) {
91
90
  _changeLayoutWidth =
92
91
  _ShopSystemInfo && _ShopSystemInfo?.windowWidth
93
92
  ? _ShopSystemInfo.windowWidth
94
93
  : Taro.getSystemInfoSync()?.windowWidth;
95
94
  }
96
95
  return isJdTabletDevice && !layoutWidth
97
96
  ? Math.floor(getNum * 1.2 * (_changeLayoutWidth / 720))
98
97
  : Math.round((getNum / widthSize) * _changeLayoutWidth);
99
98
  const getRootFontSize = (40 * (systemInfo?.windowWidth ?? _ShopSystemInfo.windowWidth)) / 750;
100
99
  let getRealRootFontSize = getRootFontSize > 40 ? 40 : getRootFontSize < 20 ? 20 : getRootFontSize;
101
100
  if (isJdTabletDevice) {
102
101
  getRealRootFontSize = Math.floor(
103
102
  24 * ((systemInfo?.windowWidth ?? _ShopSystemInfo.windowWidth) / 720),
104
103
  );
105
104
  }
106
105
  return Math.ceil(
107
106
  (((parseInt(String(changeSize), 10) / 40) * 750) / designWidth) * getRealRootFontSize,
108
107
  );
109
108
  console.log(
110
109
  '获取系统宽度systemInfo?.windowWidth',
111
110
  systemInfo?.windowWidth,
112
111
  'taroToTransformRoutimePXNumber(changeWidth)',
113
112
  taroToTransformRoutimePXNumber(changeWidth, 750, systemInfo),
114
113
  );
115
114
  return buildType === BUILD_TYPE.CLASSIFY && systemInfo?.windowWidth
116
115
  ? systemInfo?.windowWidth - taroToTransformRoutimePXNumber(changeWidth, 750, systemInfo)
117
116
  : (systemInfo?.windowWidth ?? 0);
118
117
  const systemInfo = Taro.getSystemInfoSync();
119
118
  if (params && params?.pageWidth && params?.pageHeight) {
120
119
  systemInfo.windowWidth = params?.pageWidth;
121
120
  systemInfo.windowHeight = params?.pageHeight;
122
121
  console.warn('松果app内获取重置系统信息宽度值', params, ',systemInfo信息集合为', systemInfo);
123
122
  } else {
124
123
  if (isPc) {
125
124
  systemInfo.windowWidth = 375;
126
125
  } else {
127
126
  const getWinWidth = window.innerWidth;
128
127
  const getWinHeight = window.innerHeight;
129
128
  const getScreenWidth = window.screen.width;
130
129
  const getScreenHeight = window.screen.height;
131
130
  systemInfo.isJdTabletDevice = jdTabletDeviceInfo.isTablet;
132
131
  systemInfo.isJdTabletLandscape = jdTabletDeviceInfo.isLandscape;
133
132
  if (isJdApp && isAndroidDevice && !jdTabletDeviceInfo.isTablet && systemInfo) {
134
133
  const isLandscape = getScreenWidth >= getScreenHeight;
135
134
  const { windowWidth, windowHeight, screenWidth, screenHeight } = systemInfo;
136
135
  if (windowWidth <= 0) {
137
136
  systemInfo.initWindowWidth = windowWidth;
138
137
  if (isLandscape) {
139
138
  systemInfo.windowWidth = getScreenHeight;
140
139
  systemInfo.windowHeight = getScreenWidth;
141
140
  systemInfo.screenWidth = getScreenHeight;
142
141
  systemInfo.screenHeight = getScreenWidth;
143
142
  } else {
144
143
  systemInfo.windowWidth = getScreenWidth;
145
144
  systemInfo.windowHeight = getScreenHeight;
146
145
  systemInfo.screenWidth = getScreenWidth;
147
146
  systemInfo.screenHeight = getScreenHeight;
148
147
  }
149
148
  console.warn(
150
149
  `松果安卓app内获取系统信息宽度异常为小于等于0,是否为横屏${isLandscape},进行重置,taro获取窗口宽度值${windowWidth},重置后的宽度值${systemInfo.windowWidth},taro获取窗口高度值${windowHeight},重置后的高度值${systemInfo.windowHeight}`,
151
150
  );
152
151
  sgmCustomReport({
153
152
  type: 2,
154
153
  code: 'android_jdapp_width_error_info',
155
154
  msg: {
156
155
  title: `松果安卓app内获取系统信息宽度为小于等于0,是否为横屏${isLandscape},进行重置,通过window获取的结果,getWinWidth:${getWinWidth},getScreenWidth: ${getScreenWidth},getWinHeight:${getWinHeight},getScreenHeight: ${getScreenHeight}`,
157
156
  initData: `Taro.getSystemInfo获取窗口宽度值${windowWidth},高度值${windowHeight},获取屏幕宽度值${screenWidth},高度值${screenHeight}`,
158
157
  taroSysInfo: systemInfo,
159
158
  },
160
159
  });
161
160
  } else {
162
161
  let _getChangeWinWidthState = false;
163
162
  if (getWinWidth > 0 && windowWidth > 0 && windowWidth > getWinWidth) {
164
163
  if (isLandscape) {
165
164
  systemInfo.windowWidth = getScreenHeight;
166
165
  systemInfo.windowHeight = getScreenWidth;
167
166
  systemInfo.screenWidth = getScreenHeight;
168
167
  systemInfo.screenHeight = getScreenWidth;
169
168
  } else {
170
169
  systemInfo.windowWidth = getScreenWidth;
171
170
  systemInfo.windowHeight = getScreenHeight;
172
171
  systemInfo.screenWidth = getScreenWidth;
173
172
  systemInfo.screenHeight = getScreenHeight;
174
173
  }
175
174
  _getChangeWinWidthState = true;
176
175
  }
177
176
  _getChangeWinWidthState &&
178
177
  console.warn(
179
178
  `松果安卓app内获取系统信息宽度异常,是否为横屏${isLandscape},进行重置,taro获取窗口宽度值${windowWidth},重置后的宽度值${systemInfo.windowWidth},taro获取屏幕宽度值${screenWidth},重置后的宽度值${systemInfo.screenWidth}`,
180
179
  );
181
180
  _getChangeWinWidthState &&
182
181
  sgmCustomReport({
183
182
  type: 2,
184
183
  code: 'android_jdapp_width_error_info',
185
184
  msg: {
186
185
  title: `松果安卓app内获取系统信息宽度异常,是否为横屏${isLandscape},进行重置,通过window获取的结果,getWinWidth:${getWinWidth},getScreenWidth: ${getScreenWidth},getWinHeight:${getWinHeight},getScreenHeight: ${getScreenHeight}`,
187
186
  initData: `Taro.getSystemInfo获取窗口宽度值${windowWidth},高度值${windowHeight},获取屏幕宽度值${screenWidth},高度值${screenHeight}`,
188
187
  taroSysInfo: systemInfo,
189
188
  },
190
189
  });
191
190
  }
192
191
  }
193
192
 
194
193
  if (jdTabletDeviceInfo.isTablet) {
195
194
  systemInfo.windowWidth = getScreenWidth;
196
195
  systemInfo.windowHeight = getScreenHeight;
197
196
  if (jdTabletDeviceInfo.isLandscape) {
198
197
  if (window?.PAGE_DATA?.isFitJdPadRenderCenter) {
199
198
  systemInfo.windowWidth = Math.min(getScreenWidth, getScreenHeight);
200
199
  systemInfo.windowHeight = Math.max(getScreenWidth, getScreenHeight);
201
200
  }
202
201
  }
203
202
  console.warn(
204
203
  '====初始化获取当前设备是否是平板设备,是否是横屏=====',
205
204
  jdTabletDeviceInfo,
206
205
  '屏幕信息',
207
206
  window.screen,
208
207
  '当前是否要求居中展示,居中展示那么宽高值要对调',
209
208
  window?.PAGE_DATA?.isFitJdPadRenderCenter,
210
209
  );
211
210
  }
212
211
  }
213
212
  }
214
213
  systemInfo['containerWidth'] = getContainerWidth(buildType, systemInfo);
215
214
  console.warn('====获取系统信息=====', systemInfo);
216
215
  return systemInfo;
217
216
  let result: boolean | null = null;
218
217
  return function () {
219
218
  if (result === null) {
220
219
  const appVersionCheckPass = jdAppVersionCompare(MPAAS_CONFIG_APP_VERSION) >= 0;
221
220
  if (!isJdApp) {
222
221
  console.warn('🚗 ~~ file: utils.ts:191 站外H5默认打开图片优化~');
223
222
  isIgnoreOptimizeFromServer = true;
224
223
  result = true;
225
224
  return true;
226
225
  }
227
226
  const enableAvifOptimize = appVersionCheckPass;
228
227
  if (enableAvifOptimize) {
229
228
  const configData = global.getDynamicConfig('avifSwitch');
230
229
  const {
231
230
  globalOn = true,
232
231
  ignoreOptimizeFromServer = false,
233
232
  page = {},
234
233
  grayscale = {},
235
234
  whiteList = [],
236
235
  blackList = [],
237
236
  } = configData || {};
238
237
  const { shopId = '0', venderId = '0' } = parseQueryUrlObj;
239
238
  let imageEnableResult = true;
240
239
  isIgnoreOptimizeFromServer = ignoreOptimizeFromServer;
241
240
  if (
242
241
  blackList.find((item) => item.sId === Number(shopId) || item.vId === Number(venderId))
243
242
  ) {
244
243
  imageEnableResult = false;
245
244
  } else if (
246
245
  whiteList.find((item) => item.sId === Number(shopId) || item.vId === Number(venderId))
247
246
  ) {
248
247
  isIgnoreOptimizeFromServer = true;
249
248
  imageEnableResult = true;
250
249
  } else if (grayscale[buildType] && isInGrayscale(grayscale[buildType])) {
251
250
  isIgnoreOptimizeFromServer = true;
252
251
  imageEnableResult = true;
253
252
  } else {
254
253
  imageEnableResult = globalOn === true || page[buildType] === true;
255
254
  if (globalOn === true) {
256
255
  isIgnoreOptimizeFromServer = true;
257
256
  } else if (page[buildType] === true) {
258
257
  } else {
259
258
  }
260
259
  }
261
260
  result = imageEnableResult;
262
261
  return imageEnableResult;
263
262
  } else {
264
263
  result = false;
265
264
  return false;
266
265
  }
267
266
  } else {
268
267
  return result;
269
268
  }
270
269
  };
271
270
  if (typeof options === 'object' && isImageOptimizeEnable()) {
272
271
  return getQualityImageNew(imgUrl, options, isIgnoreOptimizeFromServer);
273
272
  } else {
274
273
  return getQualityImageOld(imgUrl, options);
275
274
  }
276
275
  const getSystemInfo = getSystemAndContainerWidthInfo(params) || {
277
276
  windowWidth: window.innerWidth,
278
277
  containerWidth: getContainerWidth(buildType, {
279
278
  windowWidth: window.innerWidth,
280
279
  }),
281
280
  screenWidth: window.innerWidth,
282
281
  platform: '',
283
282
  model: '',
284
283
  system: '',
285
284
  };
286
285
  return getSystemInfo;
287
286
  const params = Object.assign(
288
287
  {},
289
288
  {
290
289
  title: '',
291
290
  duration: 1500,
292
291
  },
293
292
  options,
294
293
  );
295
294
  params.duration = params.duration / 1000;
296
295
  if (isJdApp && !isJdAndHarmonyDevice) {
297
296
  const showSuccessType = isIosDevice ? ToastIosType.SUCCESS : ToastAndroidType.SUCCESS;
298
297
  const duration = isAndroidDevice ? 0 : params.duration;
299
298
  nativePageShowToast(options.title, showSuccessType, duration);
300
299
  console.log('执行原生toast success');
301
300
  } else {
302
301
  showSuccessToast(options);
303
302
  }
304
303
  const params = Object.assign(
305
304
  {},
306
305
  {
307
306
  title: '',
308
307
  duration: 1500,
309
308
  },
310
309
  options,
311
310
  );
312
311
  params.duration = params.duration / 1000;
313
312
  if (isJdApp) {
314
313
  const showSuccessType = isIosDevice ? ToastIosType.FAIL : ToastAndroidType.FAIL;
315
314
  const duration = isAndroidDevice ? 0 : params.duration;
316
315
  nativePageShowToast(options.title, showSuccessType, duration);
317
316
  console.log('执行原生toast fail');
318
317
  } else {
319
318
  console.log('执行H5 toast fail');
320
319
  showFailToast(options);
321
320
  }
322
321
  const params = Object.assign(
323
322
  {},
324
323
  {
325
324
  title: '',
326
325
  duration: 1500,
327
326
  },
328
327
  options,
329
328
  );
330
329
  params.duration = params.duration / 1000;
331
330
  if (isJdApp) {
332
331
  const showSuccessType = isIosDevice ? ToastIosType.NORMAL : ToastAndroidType.NORMAL;
333
332
  const duration = isAndroidDevice ? 0 : params.duration;
334
333
  nativePageShowToast(options.title, showSuccessType, duration);
335
334
  } else {
336
335
  showNormalToast(options);
337
336
  }
338
337
  if (isLanguageForEn) {
339
338
  count = Number(count);
340
339
  if (count >= 1000000000) {
341
340
  return (count / 1000000000).toFixed(fixedNum) + 'B';
342
341
  } else if (count >= 1000000) {
343
342
  return (count / 1000000).toFixed(fixedNum) + 'M';
344
343
  } else if (count >= 1000) {
345
344
  return (count / 1000).toFixed(fixedNum) + 'K';
346
345
  } else {
347
346
  return count;
348
347
  }
349
348
  } else {
350
349
  return h5CountStringify(count, fixedNum, unit, maxNum);
351
350
  }
352
351
  const createLoadingEle = document.createElement('div');
353
352
  createLoadingEle.id = 'J_shopLoading';
354
353
  createLoadingEle.className = `d-shop-loading flexible-center-box ${customClassName}`;
355
354
  createLoadingEle.innerHTML = `<div class='d-loading-content'>
356
355
  <span class='d-shop-loading-icon'></span>
357
356
  <p class='d-shop-text'>${text}</p>
358
357
  </div>`;
359
358
  const getEle = document.body ? document.body : document.getElementsByTagName('body')[0];
360
359
  getEle.appendChild(createLoadingEle);
361
360
  const getEle = document.getElementById('J_shopLoading');
362
361
  getEle && getEle.remove();
363
362
  const systemInfo: UtilsInterFace.taroGetSystemInfoSyncRes = getReviseSystemInfo(params);
364
363
  if (!systemInfo.system && window) {
365
364
  systemInfo.system = window.navigator.userAgent;
366
365
  systemInfo.isChrome = !!systemInfo?.system.match(/chrome/i);
367
366
  }
368
367
  const isIOS = !!systemInfo?.system.match(/ios/i);
369
368
  const isAndroid = !!systemInfo?.system.match(/android/i);
370
369
  systemInfo.navBarHeight = 0;
371
370
  systemInfo.statusBarHeight = 0;
372
371
  systemInfo.capsulePosition = null;
373
372
  systemInfo.isIOS = isIOS;
374
373
  systemInfo.isAndroid = isAndroid;
375
374
  _ShopSystemInfo = systemInfo;
376
375
  return systemInfo;
377
376
  return originDealShopContentData(pageData, sgmCustomReport, isvdev);
378
377
  const numScale = Number(scale);
379
378
  if (isNaN(numScale)) {
380
379
  console.warn(
381
380
  `The 'scale' parameter of the 'isInGrayscale' function is invalid! Expected a number, but received ${scale}`,
382
381
  );
383
382
  return false;
384
383
  }
385
384
  const { venderId } = global.info.queryInfo || {};
386
385
  const id = venderId;
387
386
  if (!id && numScale !== 1) {
388
387
  return false;
389
388
  }
390
389
  const useScale = Math.max(0, Math.min(1, numScale));
391
390
  const isMatch = numScale === 1 || Math.floor(Number(id) % (1 / useScale)) === 0;
392
391
  if (reportKey) {
393
392
  sgmCustomReport({
394
393
  code: getSgmCustomCode(`${SgmCustomCode.GRAYSCALE}_${reportKey}_invoke`),
395
394
  msg: '灰度调用',
396
395
  });
397
396
  console.log(
398
397
  `基于KEY[${reportKey}]的灰度调用1次~`,
399
398
  getSgmCustomCode(`${SgmCustomCode.GRAYSCALE}_${reportKey}_invoke`),
400
399
  );
401
400
  if (isMatch) {
402
401
  sgmCustomReport({
403
402
  code: getSgmCustomCode(`${SgmCustomCode.GRAYSCALE}_${reportKey}_hit`),
404
403
  msg: '灰度命中',
405
404
  });
406
405
  console.log(
407
406
  `基于KEY[${reportKey}]的命中1次灰度!`,
408
407
  getSgmCustomCode(`${SgmCustomCode.GRAYSCALE}_${reportKey}_hit`),
409
408
  );
410
409
  }
411
410
  }
412
411
  return isMatch;
413
412
  isJdApp,
414
413
  isWxApp,
415
414
  isIosDevice,
416
415
  isAndroidDevice,
417
416
  isJdAndIosDevice,
418
417
  isJdAndAndroidDevice,
419
418
  isJdAndHarmonyDevice,
420
419
  isJdAndroidX5Core,
421
420
  isMin,
422
421
  isWxMin,
423
422
  isWxMinAndWxapp,
424
423
  isJdMinAndHarmony,
425
424
  isJdMin,
426
425
  isH5,
427
426
  isH5AndJdShopView,
428
427
  isChartH5,
429
428
  isH5AndJdShopViewNativeScroll,
430
429
  isH5AndJdShopViewH5Scroll,
431
430
  isH5AndJdShopH5CustomScrollView,
432
431
  isH5AndJingGouMini,
433
432
  isWxMiniH5View,
434
433
  urlCookie,
435
434
  sliceArrToChunkList,
436
435
  dealAddress,
437
436
  objectToUrlEncode,
438
437
  parseQueryUrlString,
439
438
  setLowSmallPicUrl,
440
439
  setTaroStorage,
441
440
  getTaroStorageKeyValue,
442
441
  removeTaroStorageKey,
443
442
  clearTaroStorageKey,
444
443
  getAvifSupport,
445
444
  getWebpSupport,
446
445
  getQualityImage,
447
446
  formatCountForUnit as countStringify,
448
447
  getWxAppCookieStr,
449
448
  getSystemInfos,
450
449
  pxTransformFromData,
451
450
  dealShopContentDataAndReport as dealShopContentData,
452
451
  dateFormat,
453
452
  throttle,
454
453
  lodashThrottle,
455
454
  debounce,
456
455
  addHttps,
457
456
  commonShowSuccessToast as showSuccessToast,
458
457
  commonShowFailToast as showFailToast,
459
458
  commonShowNormalToast as showNormalToast,
460
459
  showShopLoading,
461
460
  hideShopLoading,
462
461
  stopNativeScrollEvent,
463
462
  getAppChannelType,
464
463
  formatTabActiveMenuType,
465
464
  filterUrlQueryData,
466
465
  sgmCustomReport,
467
466
  draCustomReport,
468
467
  remoteCustomReport,
469
468
  draInterfaceCustomReport,
470
469
  draBusinessCustomReport,
471
470
  isMemberPage,
472
471
  getFloorDataToDataDefines,
473
472
  isOpenJdAppUrl,
474
473
  jdOpenAppParams,
475
474
  createJdOpenAppUrl,
476
475
  isEmpty,
477
476
  getJdAppReportPageSource,
478
477
  isAppClassifyPage,
479
478
  isAppHomeForMarketPage,
480
479
  isImageOptimizeEnable,
481
480
  isPc,
482
481
  ipLoc_djd,
483
482
  isTjScence,
484
483
  isH5AdnJxMini,
485
484
  isTjM,
486
485
  isTjJxM,
487
486
  isTJApp,
488
487
  isH5AdnHaoWuJie,
489
488
  tjChannel,
490
489
  dealJdOpenAppData,
491
490
  jdAppVersionCompare,
492
491
  dealNativePixelToCssPixel,
493
492
  isAppStowShop,
494
493
  getSgmCustomCode,
495
494
  handleSgmCodeTaroVersion,
496
495
  isInGrayscale,
497
496
  isIpadDevice,
498
497
  getBorderStyle,
499
498
  isSupportHybridHttpRequest,
500
499
  isLanguageForEn,
501
500
  sColor,
502
501
  draInterfaceDSMCustomReport,
503
502
  isTabletDevice,
504
503
  isJdTabletDevice,
505
504
  jdTabletDeviceInfo,
505
+ import Taro from '@tarojs/taro';
506
506
  stopNativeScrollEvent,
507
507
  getAppChannelType,
508
508
  isAndroidDevice,
509
509
  isHarmonyDevice,
510
510
  isH5AndJdShopView,
511
511
  isChartH5,
512
512
  isH5AndJdShopViewNativeScroll,
513
513
  isIosDevice,
514
514
  isJdAndAndroidDevice,
515
515
  isJdAndIosDevice,
516
516
  isJdApp,
517
517
  isWxApp,
518
518
  isWxMiniH5View,
519
519
  isJdAndHarmonyDevice,
520
520
  isNewHarmonyShop,
521
521
  isH5AndJingGouMini,
522
522
  urlCookie,
523
523
  draCustomReport,
524
524
  remoteCustomReport,
525
525
  draInterfaceCustomReport,
526
526
  draBusinessCustomReport,
527
527
  draBusinessCustomLogReport,
528
528
  isMemberPage,
529
529
  isH5AndJdShopViewH5Scroll,
530
530
  isH5AndJdShopH5CustomScrollView,
531
531
  isAppClassifyPage,
532
532
  isAppHomeForMarketPage,
533
533
  isPc,
534
534
  isPcClassifyPage,
535
535
  ipLoc_djd,
536
536
  jdAppVersionCompare,
537
537
  isTjScence,
538
538
  isH5AdnJxMini,
539
539
  isTjM,
540
540
  isTjJxM,
541
541
  isTJApp,
542
542
  isH5AdnHaoWuJie,
543
543
  tjChannel,
544
544
  dealNativePixelToCssPixel,
545
545
  isAppStowShop,
546
546
  isJdAndroidX5Core,
547
547
  parseQueryUrlObj,
548
548
  isIpadDevice,
549
549
  isTabletDevice,
550
550
  checkPadScreenOrientationIsLandscape,
551
551
  isSupportHybridHttpRequest,
552
552
  isLanguageForEn,
553
553
  sColor,
554
554
  isInJdShopView,
555
555
  isDongWebView,
556
556
  isLanguageForHk,
557
557
  languageNowType,
558
558
  isInJdAppH5DebugMode,
559
559
  isJdLiteApp,
560
560
  isJdAppForNotMain,
561
561
  addHttps,
562
562
  clearTaroStorageKey,
563
563
  countStringify as h5CountStringify,
564
564
  dateFormat,
565
565
  dealAddress,
566
566
  dealShopContentData as originDealShopContentData,
567
567
  debounce,
568
568
  filterUrlQueryData,
569
569
  formatTabActiveMenuType,
570
570
  getAvifSupport,
571
571
  getWebpSupport,
572
572
  getTaroStorageKeyValue,
573
573
  getWxAppCookieStr,
574
574
  isH5,
575
575
  isMin,
576
576
  isJdMin,
577
577
  isWxMin,
578
578
  isWxMinAndWxapp,
579
579
  isJdMinAndHarmony,
580
580
  lodashThrottle,
581
581
  objectToUrlEncode,
582
582
  parseQueryUrlString,
583
583
  removeTaroStorageKey,
584
584
  setLowSmallPicUrl,
585
585
  setTaroStorage,
586
586
  showFailToast,
587
587
  showNormalToast,
588
588
  showSuccessToast,
589
589
  sliceArrToChunkList,
590
590
  throttle,
591
591
  getQualityImageNew,
592
592
  getQualityImageOld,
593
593
  isOpenJdAppUrl,
594
594
  jdOpenAppParams,
595
595
  createJdOpenAppUrl,
596
596
  isEmpty,
597
597
  getJdAppReportPageSource,
598
598
  dealJdOpenAppData,
599
599
  getBorderStyle,
600
600
  isInHarmonyBlacklistByModuleFlag,
601
601
  const getNum = Number(num);
602
602
  let _changeLayoutWidth = layoutWidth;
603
603
  if (!_changeLayoutWidth) {
604
604
  _changeLayoutWidth =
605
605
  _ShopSystemInfo && _ShopSystemInfo?.windowWidth
606
606
  ? _ShopSystemInfo.windowWidth
607
607
  : Taro.getSystemInfoSync()?.windowWidth;
608
608
  }
609
609
  return _ShopSystemInfo?.isJdTabletDevice && !layoutWidth
610
610
  ? Math.floor(getNum * 1.2 * (_changeLayoutWidth / 720))
611
611
  : Math.round((getNum / widthSize) * _changeLayoutWidth);
612
612
  const getRootFontSize = (40 * (systemInfo?.windowWidth ?? _ShopSystemInfo.windowWidth)) / 750;
613
613
  let getRealRootFontSize = getRootFontSize > 40 ? 40 : getRootFontSize < 20 ? 20 : getRootFontSize;
614
614
  if (_ShopSystemInfo?.isJdTabletDevice) {
615
615
  getRealRootFontSize = Math.floor(
616
616
  24 * ((systemInfo?.windowWidth ?? _ShopSystemInfo.windowWidth) / 720),
617
617
  );
618
618
  }
619
619
  return Math.ceil(
620
620
  (((parseInt(String(changeSize), 10) / 40) * 750) / designWidth) * getRealRootFontSize,
621
621
  );
622
622
  console.log(
623
623
  '获取系统宽度systemInfo?.windowWidth',
624
624
  systemInfo?.windowWidth,
625
625
  'taroToTransformRoutimePXNumber(changeWidth)',
626
626
  taroToTransformRoutimePXNumber(changeWidth, 750, systemInfo),
627
627
  );
628
628
  return buildType === BUILD_TYPE.CLASSIFY && systemInfo?.windowWidth
629
629
  ? systemInfo?.windowWidth - taroToTransformRoutimePXNumber(changeWidth, 750, systemInfo)
630
630
  : systemInfo?.windowWidth ?? 0;
631
631
  const systemInfo = _ShopSystemInfo || Taro.getSystemInfoSync();
632
632
  console.log(
633
633
  '获取系统宽度systemInfo?.windowWidth',
634
634
  systemInfo?.windowWidth,
635
635
  'taroToTransformRoutimePXNumber(changeWidth)',
636
636
  taroToTransformRoutimePXNumber(changeWidth, 750, systemInfo),
637
637
  );
638
638
  const containerWidth =
639
639
  isClassify && systemInfo?.windowWidth
640
640
  ? systemInfo?.windowWidth - taroToTransformRoutimePXNumber(changeWidth, 750, systemInfo)
641
641
  : systemInfo?.windowWidth ?? 0;
642
642
  if (global?.info?.sysInfo) {
643
643
  global.info.sysInfo['containerWidth'] = containerWidth;
644
644
  }
645
645
  return (
646
646
  isJdApp &&
647
647
  (parseQueryUrlObj['device'] === 'tablet' || Math.min(rootEleWidth, window.screen.height) >= 720)
648
648
  );
649
649
  const systemInfo = Taro.getSystemInfoSync();
650
650
  if (params && params?.pageWidth && params?.pageHeight) {
651
651
  systemInfo.windowWidth = params?.pageWidth;
652
652
  systemInfo.windowHeight = params?.pageHeight;
653
653
  console.warn('松果app内获取重置系统信息宽度值', params, ',systemInfo信息集合为', systemInfo);
654
654
  } else {
655
655
  if (isPc) {
656
656
  systemInfo.windowWidth = 375;
657
657
  } else {
658
658
  const getWinWidth = window.innerWidth;
659
659
  const getWinHeight = window.innerHeight;
660
660
  const getScreenWidth = window.screen.width;
661
661
  const getScreenHeight = window.screen.height;
662
662
  const getRootEleInitWidth = params?.rootEleInitWidth || 0;
663
663
  const isReplaceSystemWidth = params?.replaceSystemWidth || false;
664
664
  systemInfo.isJdTabletDevice = checkIsJdTabletDevice(getRootEleInitWidth);
665
665
  systemInfo.isJdTabletLandscape =
666
666
  systemInfo.isJdTabletDevice &&
667
667
  checkPadScreenOrientationIsLandscape(getRootEleInitWidth, getScreenWidth, getScreenHeight);
668
668
  if (!systemInfo.isJdTabletDevice && isReplaceSystemWidth) {
669
669
  if (systemInfo?.windowWidth <= 0) {
670
670
  systemInfo.windowWidth = Math.min(getRootEleInitWidth, getScreenWidth);
671
671
  systemInfo.windowHeight = getScreenHeight;
672
672
  console.warn(
673
673
  '====初始化获取当前设备不是pad,但是触发屏幕宽高最小值600,系统获取宽度为0,进行重置系统宽度为根元素宽度与屏幕宽度最小值====',
674
674
  systemInfo.windowWidth,
675
675
  'getRootEleInitWidth',
676
676
  getRootEleInitWidth,
677
677
  'getScreenWidth',
678
678
  getScreenWidth,
679
679
  'getScreenHeight',
680
680
  getScreenHeight,
681
681
  );
682
682
  draBusinessCustomReport({
683
683
  eventName: 'business',
684
684
  errorName: 'jdapp_pad_width_error_info',
685
685
  errorMessage: `松果app内获取当前设备不是pad,触发屏幕宽高最小值600,系统信息宽度为0,进行重置,通过window获取的结果,getWinWidth:${getWinWidth},getScreenWidth: ${getScreenWidth},getWinHeight:${getWinHeight},getScreenHeight: ${getScreenHeight},根元素宽度值:${getRootEleInitWidth}`,
686
686
  extraData: JSON.stringify({
687
687
  isJdApp,
688
688
  isAndroidDevice,
689
689
  getScreenWidth,
690
690
  getScreenHeight,
691
691
  getWinWidth,
692
692
  getWinHeight,
693
693
  getRootEleInitWidth,
694
694
  }),
695
695
  });
696
696
  }
697
697
  } else {
698
698
  if (isJdApp && isAndroidDevice && !systemInfo.isJdTabletDevice && systemInfo) {
699
699
  const isLandscape = getScreenWidth >= getScreenHeight;
700
700
  const { windowWidth, windowHeight, screenWidth, screenHeight } = systemInfo;
701
701
  if (windowWidth <= 0) {
702
702
  systemInfo.initWindowWidth = windowWidth;
703
703
  if (isLandscape) {
704
704
  systemInfo.windowWidth = getScreenHeight;
705
705
  systemInfo.windowHeight = getScreenWidth;
706
706
  systemInfo.screenWidth = getScreenHeight;
707
707
  systemInfo.screenHeight = getScreenWidth;
708
708
  } else {
709
709
  systemInfo.windowWidth = getScreenWidth;
710
710
  systemInfo.windowHeight = getScreenHeight;
711
711
  systemInfo.screenWidth = getScreenWidth;
712
712
  systemInfo.screenHeight = getScreenHeight;
713
713
  }
714
714
  console.warn(
715
715
  `松果安卓app内获取系统信息宽度异常为小于等于0,是否为横屏${isLandscape},进行重置,taro获取窗口宽度值${windowWidth},重置后的宽度值${systemInfo.windowWidth},taro获取窗口高度值${windowHeight},重置后的高度值${systemInfo.windowHeight},根元素宽度值${getRootEleInitWidth}`,
716
716
  );
717
717
  draBusinessCustomReport({
718
718
  eventName: 'UIInteract',
719
719
  errorName: 'android_jdapp_width_error_info',
720
720
  errorMessage: `松果安卓app内获取系统信息宽度为小于等于0,是否为横屏${isLandscape},进行重置,通过window获取的结果,getWinWidth:${getWinWidth},getScreenWidth: ${getScreenWidth},getWinHeight:${getWinHeight},getScreenHeight: ${getScreenHeight},根元素宽度值:${getRootEleInitWidth}`,
721
721
  extraData: JSON.stringify({
722
722
  isJdApp,
723
723
  initData: `Taro.getSystemInfo获取窗口宽度值${windowWidth},高度值${windowHeight},获取屏幕宽度值${screenWidth},高度值${screenHeight}`,
724
724
  getScreenWidth,
725
725
  getScreenHeight,
726
726
  getWinWidth,
727
727
  getWinHeight,
728
728
  getRootEleInitWidth,
729
729
  }),
730
730
  });
731
731
  } else {
732
732
  let _getChangeWinWidthState = false;
733
733
  if (getWinWidth > 0 && windowWidth > 0 && windowWidth > getWinWidth) {
734
734
  if (isLandscape) {
735
735
  systemInfo.windowWidth = getScreenHeight;
736
736
  systemInfo.windowHeight = getScreenWidth;
737
737
  systemInfo.screenWidth = getScreenHeight;
738
738
  systemInfo.screenHeight = getScreenWidth;
739
739
  } else {
740
740
  systemInfo.windowWidth = getScreenWidth;
741
741
  systemInfo.windowHeight = getScreenHeight;
742
742
  systemInfo.screenWidth = getScreenWidth;
743
743
  systemInfo.screenHeight = getScreenHeight;
744
744
  }
745
745
  _getChangeWinWidthState = true;
746
746
  }
747
747
  _getChangeWinWidthState &&
748
748
  console.warn(
749
749
  `松果安卓app内获取系统信息宽度异常,是否为横屏${isLandscape},进行重置,taro获取窗口宽度值${windowWidth},重置后的宽度值${systemInfo.windowWidth},taro获取屏幕宽度值${screenWidth},重置后的宽度值${systemInfo.screenWidth}`,
750
750
  );
751
751
  if (_getChangeWinWidthState) {
752
752
  draBusinessCustomReport({
753
753
  eventName: 'business',
754
754
  errorName: 'android_jdapp_width_error_info_2',
755
755
  errorMessage: `松果安卓app内获取系统信息宽度异常,是否为横屏${isLandscape},进行重置,通过window获取的结果,getWinWidth:${getWinWidth},getScreenWidth: ${getScreenWidth},getWinHeight:${getWinHeight},getScreenHeight: ${getScreenHeight},根元素宽度值:${getRootEleInitWidth}`,
756
756
  extraData: JSON.stringify({
757
757
  isJdApp,
758
758
  initData: `Taro.getSystemInfo获取窗口宽度值${windowWidth},高度值${windowHeight},获取屏幕宽度值${screenWidth},高度值${screenHeight}`,
759
759
  getScreenWidth,
760
760
  getScreenHeight,
761
761
  getWinWidth,
762
762
  getWinHeight,
763
763
  getRootEleInitWidth,
764
764
  }),
765
765
  });
766
766
  }
767
767
  }
768
768
  }
769
769
  }
770
770
 
771
771
  if (systemInfo.isJdTabletDevice) {
772
772
  systemInfo.windowWidth = Math.min(getRootEleInitWidth, getScreenWidth, getScreenHeight);
773
773
  systemInfo.windowHeight = Math.max(getScreenWidth, getScreenHeight);
774
774
  if (systemInfo.isJdTabletLandscape) {
775
775
  const getRenderCenterState = window?.PAGE_DATA?.businessData?.fitPadCenterRenderLowVersion
776
776
  ? jdAppVersionCompare(window.PAGE_DATA.businessData.fitPadCenterRenderLowVersion) < 0
777
777
  : false;
778
778
  if (getRenderCenterState && window?.PAGE_DATA) {
779
779
  window.PAGE_DATA.isFitJdPadRenderCenter = true;
780
780
  }
781
781
  if (window?.PAGE_DATA?.isFitJdPadRenderCenter) {
782
782
  systemInfo.windowWidth = Math.min(getRootEleInitWidth, getScreenWidth, getScreenHeight);
783
783
  systemInfo.windowHeight = Math.max(
784
784
  getRootEleInitWidth,
785
785
  getScreenWidth,
786
786
  getScreenHeight,
787
787
  );
788
788
  } else {
789
789
  systemInfo.windowWidth = Math.max(getRootEleInitWidth, getScreenWidth, getScreenHeight);
790
790
  systemInfo.windowHeight = Math.min(
791
791
  getRootEleInitWidth,
792
792
  getScreenWidth,
793
793
  getScreenHeight,
794
794
  );
795
795
  }
796
796
  }
797
797
  console.warn(
798
798
  '====初始化获取当前设备是否是平板设备,是否横屏====',
799
799
  systemInfo.isJdTabletDevice,
800
800
  systemInfo.isJdTabletLandscape,
801
801
  '屏幕信息',
802
802
  window.screen,
803
803
  'getScreenWidth',
804
804
  getScreenWidth,
805
805
  'getScreenHeight',
806
806
  getScreenHeight,
807
807
  'getRootEleInitWidth',
808
808
  getRootEleInitWidth,
809
809
  '当前是否要求居中展示,居中展示那么宽高值要对调',
810
810
  window?.PAGE_DATA?.isFitJdPadRenderCenter,
811
811
  '当前pad最终展示的窗口宽度',
812
812
  systemInfo.windowWidth,
813
813
  );
814
814
  }
815
815
  }
816
816
  }
817
817
  systemInfo['containerWidth'] = getContainerWidth(buildType, systemInfo);
818
818
  console.warn('====获取系统信息=====', systemInfo);
819
819
  return systemInfo;
820
820
  let result: boolean | null = null;
821
821
  return function () {
822
822
  if (result === null) {
823
823
  const appVersionCheckPass = jdAppVersionCompare(MPAAS_CONFIG_APP_VERSION) >= 0;
824
824
  if (!isJdApp) {
825
825
  console.warn('🚗 ~~ file: utils.ts:191 站外H5默认打开图片优化~');
826
826
  isIgnoreOptimizeFromServer = true;
827
827
  result = true;
828
828
  return true;
829
829
  }
830
830
  const enableAvifOptimize = appVersionCheckPass;
831
831
  if (enableAvifOptimize) {
832
832
  const configData = global?.getDynamicConfig('avifSwitch');
833
833
  const {
834
834
  globalOn = true,
835
835
  ignoreOptimizeFromServer = false,
836
836
  page = {},
837
837
  grayscale = {},
838
838
  whiteList = [],
839
839
  blackList = [],
840
840
  } = configData || {};
841
841
  const { shopId = '0', venderId = '0' } = parseQueryUrlObj;
842
842
  let imageEnableResult = true;
843
843
  isIgnoreOptimizeFromServer = ignoreOptimizeFromServer;
844
844
  if (
845
845
  blackList.find((item) => item.sId === Number(shopId) || item.vId === Number(venderId))
846
846
  ) {
847
847
  imageEnableResult = false;
848
848
  } else if (
849
849
  whiteList.find((item) => item.sId === Number(shopId) || item.vId === Number(venderId))
850
850
  ) {
851
851
  isIgnoreOptimizeFromServer = true;
852
852
  imageEnableResult = true;
853
853
  } else if (grayscale[buildType] && isInGrayscale(grayscale[buildType])) {
854
854
  isIgnoreOptimizeFromServer = true;
855
855
  imageEnableResult = true;
856
856
  } else {
857
857
  imageEnableResult = globalOn === true || page[buildType] === true;
858
858
  if (globalOn === true) {
859
859
  isIgnoreOptimizeFromServer = true;
860
860
  } else if (page[buildType] === true) {
861
861
  } else {
862
862
  }
863
863
  }
864
864
  result = imageEnableResult;
865
865
  return imageEnableResult;
866
866
  } else {
867
867
  result = false;
868
868
  return false;
869
869
  }
870
870
  } else {
871
871
  return result;
872
872
  }
873
873
  };
874
874
  if (typeof options === 'object' && isImageOptimizeEnable()) {
875
875
  return getQualityImageNew(imgUrl, options, isIgnoreOptimizeFromServer);
876
876
  } else {
877
877
  return getQualityImageOld(imgUrl, options);
878
878
  }
879
879
  const getSystemInfo = getSystemAndContainerWidthInfo(params) || {
880
880
  windowWidth: window.innerWidth,
881
881
  containerWidth: getContainerWidth(buildType, {
882
882
  windowWidth: window.innerWidth,
883
883
  }),
884
884
  screenWidth: window.innerWidth,
885
885
  platform: '',
886
886
  model: '',
887
887
  system: '',
888
888
  };
889
889
  return getSystemInfo;
890
890
  const params = Object.assign(
891
891
  {},
892
892
  {
893
893
  title: '',
894
894
  duration: 1500,
895
895
  },
896
896
  options,
897
897
  );
898
898
  params.duration = params.duration / 1000;
899
899
  if (isJdApp && !isJdAppForNotMain && !isJdAndHarmonyDevice && !window?.PAGE_DATA?.businessData?.hideNativeToast) {
900
900
  const showSuccessType = isIosDevice ? ToastIosType.SUCCESS : ToastAndroidType.SUCCESS;
901
901
  const duration = isAndroidDevice ? 0 : params.duration;
902
902
  nativePageShowToast(options.title, showSuccessType, duration);
903
903
  console.log('执行原生toast success');
904
904
  } else {
905
905
  showSuccessToast(options);
906
906
  }
907
907
  const params = Object.assign(
908
908
  {},
909
909
  {
910
910
  title: '',
911
911
  duration: 1500,
912
912
  },
913
913
  options,
914
914
  );
915
915
  params.duration = params.duration / 1000;
916
916
  if (isJdApp && !isJdAppForNotMain && !window?.PAGE_DATA?.businessData?.hideNativeToast) {
917
917
  const showSuccessType = isIosDevice ? ToastIosType.FAIL : ToastAndroidType.FAIL;
918
918
  const duration = isAndroidDevice ? 0 : params.duration;
919
919
  nativePageShowToast(options.title, showSuccessType, duration);
920
920
  console.log('执行原生toast fail');
921
921
  } else {
922
922
  console.log('执行H5 toast fail');
923
923
  showFailToast(options);
924
924
  }
925
925
  const params = Object.assign(
926
926
  {},
927
927
  {
928
928
  title: '',
929
929
  duration: 1500,
930
930
  },
931
931
  options,
932
932
  );
933
933
  params.duration = params.duration / 1000;
934
934
  if (isJdApp && !isJdAppForNotMain && !window?.PAGE_DATA?.businessData?.hideNativeToast) {
935
935
  const showSuccessType = isIosDevice ? ToastIosType.NORMAL : ToastAndroidType.NORMAL;
936
936
  const duration = isAndroidDevice ? 0 : params.duration;
937
937
  nativePageShowToast(options.title, showSuccessType, duration);
938
938
  } else {
939
939
  showNormalToast(options);
940
940
  }
941
941
  if (isLanguageForEn) {
942
942
  count = Number(count);
943
943
  if (count >= 1000000000) {
944
944
  return (count / 1000000000).toFixed(fixedNum) + 'B';
945
945
  } else if (count >= 1000000) {
946
946
  return (count / 1000000).toFixed(fixedNum) + 'M';
947
947
  } else if (count >= 1000) {
948
948
  return (count / 1000).toFixed(fixedNum) + 'K';
949
949
  } else {
950
950
  return count;
951
951
  }
952
952
  } else {
953
953
  return h5CountStringify(count, fixedNum, unit, maxNum);
954
954
  }
955
955
  const createLoadingEle = document.createElement('div');
956
956
  createLoadingEle.id = 'J_shopLoading';
957
957
  createLoadingEle.className = `d-shop-loading flexible-center-box ${customClassName}`;
958
958
  createLoadingEle.innerHTML = `<div class='d-loading-content'>
959
959
  <span class='d-shop-loading-icon'></span>
960
960
  <p class='d-shop-text'>${text}</p>
961
961
  </div>`;
962
962
  const getEle = document.body ? document.body : document.getElementsByTagName('body')[0];
963
963
  getEle.appendChild(createLoadingEle);
964
964
  const getEle = document.getElementById('J_shopLoading');
965
965
  getEle && getEle.remove();
966
966
  const systemInfo: UtilsInterFace.taroGetSystemInfoSyncRes = getReviseSystemInfo(params);
967
967
  if (!systemInfo.system && window) {
968
968
  systemInfo.system = window.navigator.userAgent;
969
969
  systemInfo.isChrome = !!systemInfo?.system.match(/chrome/i);
970
970
  }
971
971
  const isIOS = !!systemInfo?.system.match(/ios/i);
972
972
  const isAndroid = !!systemInfo?.system.match(/android/i);
973
973
  systemInfo.navBarHeight = 0;
974
974
  systemInfo.statusBarHeight = 0;
975
975
  systemInfo.capsulePosition = null;
976
976
  systemInfo.isIOS = isIOS;
977
977
  systemInfo.isAndroid = isAndroid;
978
978
  _ShopSystemInfo = systemInfo;
979
979
  return systemInfo;
980
980
  const result = originDealShopContentData(pageData, draBusinessCustomReport, isvdev);
981
981
  if (isJdAndHarmonyDevice && isNewHarmonyShop) {
982
982
  result.shopContentContainerListData = result.shopContentContainerListData.filter(
983
983
  (item) =>
984
984
  item.floors.length > 0 &&
985
985
  !isInHarmonyBlacklistByModuleFlag(item.containerId, result.shopContentContainerListData),
986
986
  );
987
987
  }
988
988
  return result;
989
989
  const numScale = Number(scale);
990
990
  if (isNaN(numScale)) {
991
991
  console.warn(
992
992
  `The 'scale' parameter of the 'isInGrayscale' function is invalid! Expected a number, but received ${scale}`,
993
993
  );
994
994
  return false;
995
995
  }
996
996
  const { venderId } = global.info.queryInfo || {};
997
997
  const id = venderId;
998
998
  if (!id && numScale !== 1) {
999
999
  return false;
1000
1000
  }
1001
1001
  const useScale = Math.max(0, Math.min(1, numScale));
1002
1002
  const isMatch = numScale === 1 || Math.floor(Number(id) % (1 / useScale)) === 0;
1003
1003
  if (reportKey) {
1004
1004
  console.log(
1005
1005
  `基于KEY[${reportKey}]的灰度调用1次~`,
1006
1006
  getSgmCustomCode(`${SgmCustomCode.GRAYSCALE}_${reportKey}_invoke`),
1007
1007
  );
1008
1008
  if (isMatch) {
1009
1009
  console.log(
1010
1010
  `基于KEY[${reportKey}]的命中1次灰度!`,
1011
1011
  getSgmCustomCode(`${SgmCustomCode.GRAYSCALE}_${reportKey}_hit`),
1012
1012
  );
1013
1013
  }
1014
1014
  }
1015
1015
  return isMatch;
1016
1016
  isJdApp,
1017
1017
  isWxApp,
1018
1018
  isIosDevice,
1019
1019
  isAndroidDevice,
1020
1020
  isHarmonyDevice,
1021
1021
  isJdAndIosDevice,
1022
1022
  isJdAndAndroidDevice,
1023
1023
  isJdAndHarmonyDevice,
1024
1024
  isNewHarmonyShop,
1025
1025
  isJdAndroidX5Core,
1026
1026
  isMin,
1027
1027
  isWxMin,
1028
1028
  isWxMinAndWxapp,
1029
1029
  isJdMinAndHarmony,
1030
1030
  isJdMin,
1031
1031
  isH5,
1032
1032
  isH5AndJdShopView,
1033
1033
  isChartH5,
1034
1034
  isH5AndJdShopViewNativeScroll,
1035
1035
  isH5AndJdShopViewH5Scroll,
1036
1036
  isH5AndJdShopH5CustomScrollView,
1037
1037
  isH5AndJingGouMini,
1038
1038
  isWxMiniH5View,
1039
1039
  urlCookie,
1040
1040
  sliceArrToChunkList,
1041
1041
  dealAddress,
1042
1042
  objectToUrlEncode,
1043
1043
  parseQueryUrlString,
1044
1044
  setLowSmallPicUrl,
1045
1045
  setTaroStorage,
1046
1046
  getTaroStorageKeyValue,
1047
1047
  removeTaroStorageKey,
1048
1048
  clearTaroStorageKey,
1049
1049
  getAvifSupport,
1050
1050
  getWebpSupport,
1051
1051
  getQualityImage,
1052
1052
  formatCountForUnit as countStringify,
1053
1053
  getWxAppCookieStr,
1054
1054
  getSystemInfos,
1055
1055
  pxTransformFromData,
1056
1056
  dealShopContentDataAndReport as dealShopContentData,
1057
1057
  dateFormat,
1058
1058
  throttle,
1059
1059
  lodashThrottle,
1060
1060
  debounce,
1061
1061
  addHttps,
1062
1062
  commonShowSuccessToast as showSuccessToast,
1063
1063
  commonShowFailToast as showFailToast,
1064
1064
  commonShowNormalToast as showNormalToast,
1065
1065
  showShopLoading,
1066
1066
  hideShopLoading,
1067
1067
  stopNativeScrollEvent,
1068
1068
  getAppChannelType,
1069
1069
  formatTabActiveMenuType,
1070
1070
  filterUrlQueryData,
1071
1071
  draCustomReport,
1072
1072
  remoteCustomReport,
1073
1073
  draInterfaceCustomReport,
1074
1074
  draBusinessCustomReport,
1075
1075
  draBusinessCustomLogReport,
1076
1076
  isMemberPage,
1077
1077
  getFloorDataToDataDefines,
1078
1078
  isOpenJdAppUrl,
1079
1079
  jdOpenAppParams,
1080
1080
  createJdOpenAppUrl,
1081
1081
  isEmpty,
1082
1082
  getJdAppReportPageSource,
1083
1083
  isAppClassifyPage,
1084
1084
  isAppHomeForMarketPage,
1085
1085
  isImageOptimizeEnable,
1086
1086
  isPc,
1087
1087
  isPcClassifyPage,
1088
1088
  ipLoc_djd,
1089
1089
  isTjScence,
1090
1090
  isH5AdnJxMini,
1091
1091
  isTjM,
1092
1092
  isTjJxM,
1093
1093
  isTJApp,
1094
1094
  isH5AdnHaoWuJie,
1095
1095
  tjChannel,
1096
1096
  dealJdOpenAppData,
1097
1097
  jdAppVersionCompare,
1098
1098
  dealNativePixelToCssPixel,
1099
1099
  isAppStowShop,
1100
1100
  getSgmCustomCode,
1101
1101
  handleSgmCodeTaroVersion,
1102
1102
  isInGrayscale,
1103
1103
  isIpadDevice,
1104
1104
  getBorderStyle,
1105
1105
  isSupportHybridHttpRequest,
1106
1106
  isLanguageForEn,
1107
1107
  sColor,
1108
1108
  isTabletDevice,
1109
1109
  taroToTransformRoutimePXNumber,
1110
1110
  updateContainerWidth,
1111
1111
  isInJdShopView,
1112
1112
  isDongWebView,
1113
1113
  isLanguageForHk,
1114
1114
  languageNowType,
1115
1115
  isInJdAppH5DebugMode,
1116
1116
  isJdLiteApp,
1117
1117
  isJdAppForNotMain,