@conecli/cone-render 0.10.1-shop3.1 → 0.10.1-shop3.100

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