@conecli/cone-render 0.9.1-shop2.8 → 0.9.1-shop2.9

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 (39) hide show
  1. package/dist/api/index.ts +1 -1
  2. package/dist/common/environmentType.ts +1 -0
  3. package/dist/common/index.h5.ts +1 -1
  4. package/dist/common/index.jd.ts +1 -1
  5. package/dist/common/index.ts +1 -1
  6. package/dist/common/index.weapp.ts +1 -1
  7. package/dist/common/sgmCustomCode.ts +1 -0
  8. package/dist/common/wxappApi.jd.ts +1 -0
  9. package/dist/components/ErrorBoundary.tsx +1 -1
  10. package/dist/components/base/CustomScrollView/index.jd.tsx +1 -0
  11. package/dist/components/base/CustomScrollView/index.module.scss +7 -0
  12. package/dist/components/floorItem.jd.tsx +1 -1
  13. package/dist/components/floorItem.weapp.tsx +1 -1
  14. package/dist/components/remoteFloorItem.tsx +1 -1
  15. package/dist/interface/common.ts +1 -1
  16. package/dist/interface/component.ts +1 -1
  17. package/dist/interface/jumpEventReport.ts +1 -1
  18. package/dist/interface/service.ts +1 -1
  19. package/dist/interface/utils.ts +1 -1
  20. package/dist/jumpEventReport/base.ts +1 -1
  21. package/dist/jumpEventReport/createReportFloorData.ts +1 -1
  22. package/dist/jumpEventReport/index.h5.ts +1 -1
  23. package/dist/jumpEventReport/index.jd.ts +1 -1
  24. package/dist/jumpEventReport/jumpUrlConfig/base.ts +1 -1
  25. package/dist/jumpEventReport/web.jxwxapp.ts +1 -0
  26. package/dist/jumpEventReport/web.tjapp.ts +1 -0
  27. package/dist/jumpEventReport/web.tjm.ts +1 -0
  28. package/dist/open/api/environment.ts +1 -1
  29. package/dist/open/api/track.ts +1 -1
  30. package/dist/service/requestServer.ts +1 -1
  31. package/dist/utils/draExceptionAndProfile.ts +1 -1
  32. package/dist/utils/h5Utils.ts +1 -1
  33. package/dist/utils/index.h5.ts +1 -1
  34. package/dist/utils/index.ts +1 -1
  35. package/dist/utils/index.weapp.ts +1 -1
  36. package/dist/utils/jm-common.js +1 -1
  37. package/dist/utils/sgmCodeUtils.ts +1 -0
  38. package/dist/utils/utils.ts +1 -1
  39. package/package.json +1 -1
@@ -1 +1 @@
1
- import Taro from '@tarojs/taro'
2
1
  WXAPP_SUBS_GUIDER
3
2
  WXAPP_BIZ_SHOP_LIGHT_KEY
4
3
  floorVideInfo: {},
5
4
  productVideInfo: {},
6
5
  isVipShop: false,
7
6
  isJdShowNativeImmersivePlayer: false,
8
7
  pageIdxHeightInfo: {
9
8
  list: []
10
9
  },
11
10
  jdBottomBarHeight: 0,
12
11
  jdNativeHeaderHeight: 0,
13
12
  shopInfo: {},
14
13
  openAppData: {}
15
14
  public config: {
16
15
  [key: string]: any
17
16
  }
18
17
  this.config = {}
19
18
  this.wxAppSubsGuider = WXAPP_SUBS_GUIDER
20
19
  console.log('=================>', 'updateBusinessDomainAndApi')
21
20
 
22
21
  loginColor: {
23
22
  bzi:WXAPP_BIZ_KEY,
24
23
  dpin: 1,
25
24
  },
26
25
  setTimeout(() => {
27
26
  console.log("微信app登录返回成功后,后台会写入cookie,有延迟,这里延迟500ms去获取最新cookie")
28
27
  this.getLoginCookie(`${Date.now()}`)
29
28
  },500)
30
29
  this.getLoginCookie(`${Date.now()}`)
31
30
  loginColor: {
32
31
  bzi:WXAPP_BIZ_KEY,
33
32
  dpin: 1,
34
33
  },
35
34
  setTimeout(() => {
36
35
  console.log("微信强制登录后,后台会写入cookie,有延迟,这里延迟500ms去获取最新cookie")
37
36
  this.getLoginCookie(`${Date.now()}`)
38
37
  },500)
39
38
 
40
39
  doLoginForJdPin(options = {}) {
41
40
  return this.doLogin({
42
41
  loginColor: {
43
42
  biz: WXAPP_BIZ_SHOP_LIGHT_KEY,
44
43
  dpin: 0,
45
44
  },
46
45
  ...options
47
46
  })
48
47
  }
49
48
  return new Promise((resolve) => {
50
49
  console.log("开始获取更新wxapp中的cookie信息", updateKey)
51
50
  if(this.config.wqCookie && this.config.wqCookieStr && this.config.getWqCookieKey === updateKey){
52
51
  console.log("已有存储wxapp中的cookie信息,直接返回",this.config)
53
52
  resolve({
54
53
  wqCookie: this.config.wqCookie,
55
54
  wqCookieStr: this.config.wqCookieStr,
56
55
  })
57
56
  }else {
58
57
  if (isPublishToWxapp) {
59
58
  const getWxappCookieObj = getTaroStorageKeyValue('cookies') || null
60
59
  if (getWxappCookieObj) {
61
60
  const getCookieObj = getWxappCookieObj['_data']
62
61
  const { wqCookie, wqCookieStr } = getWxAppCookieStr(getCookieObj)
63
62
  const { pin = '', visitkey = '-1', wq_unionid = '', wxapp_openid = '' } = wqCookie
64
63
  this.info.loginState = true
65
64
  this.info.userInfo.wqCookie = wqCookieStr
66
65
  this.info.userInfo.wqVisitkey = visitkey
67
66
  console.log('获取用户完整cookie信息', getCookieObj)
68
67
  const getUserAddress = this.wxAppUserInfoInstance.getAddress()
69
68
  console.log('获取微信用户地址信息', getUserAddress)
70
69
  if (getUserAddress) {
71
70
  this.info.pageInfo.address = getUserAddress?.areaId
72
71
  this.info.pageInfo.addressCommaStr = this.info.pageInfo
73
72
  .address
74
73
  ? this.info.pageInfo.address.replace(/_/g, ',')
75
74
  : ''
76
75
  this.info.pageInfo.un_area = this.info.pageInfo.address
77
76
  Taro.eventCenter.trigger(
78
77
  TaroEventType.USER_AREA_UPDATE,
79
78
  this.info.pageInfo.address,
80
79
  )
81
80
  }
82
81
  if(this.miniAppLogInstance){
83
82
  this.miniAppLogInstance.set({
84
83
  account: pin,
85
84
  unionid: wq_unionid,
86
85
  openid: wxapp_openid,
87
86
  })
88
87
  }
89
88
  this.config.wqCookie = wqCookie
90
89
  this.config.wqCookieStr = wqCookieStr
91
90
  this.config.getWqCookieKey = updateKey
92
91
  console.log("解析wxapp中的cookie信息成功,返回后存储",this.config)
93
92
  resolve({
94
93
  wqCookie,
95
94
  wqCookieStr,
96
95
  })
97
96
  }else {
98
97
  console.log("解析wxapp中的cookie信息异常,返回异常结果",this.config)
99
98
  resolve({
100
99
  wqCookie: false,
101
100
  wqCookieStr: false,
102
101
  })
103
102
  }
104
103
  }else {
105
104
  resolve({
106
105
  wqCookie: false,
107
106
  wqCookieStr: false,
108
107
  })
109
108
  }
110
109
  }
111
110
  })
112
111
 
113
112
  getAddressCachePromise = () => {
114
113
  return Promise.reject("该方法只在APP内适用")
115
114
  }
115
+ import Taro from '@tarojs/taro'
116
116
  WXAPP_SUBS_GUIDER
117
117
  WXAPP_BIZ_SHOP_LIGHT_KEY
118
118
  floorVideInfo: {},
119
119
  productVideInfo: {},
120
120
  isVipShop: false,
121
121
  isJdShowNativeImmersivePlayer: false,
122
122
  pageIdxHeightInfo: {
123
123
  list: []
124
124
  },
125
125
  jdBottomBarHeight: 0,
126
126
  jdNativeHeaderHeight: 0,
127
127
  shopInfo: {},
128
128
  openAppData: {}
129
129
  public config: {
130
130
  [key: string]: any
131
131
  }
132
132
  this.config = {}
133
133
  this.wxAppSubsGuider = WXAPP_SUBS_GUIDER
134
134
 
135
135
  taskTimeoutPromise(callBack, timeout = 2000){
136
136
  return new Promise((resolve) => {
137
137
  setTimeout(() => {
138
138
  const getCallBackRes = typeof callBack === 'function' && callBack()
139
139
  return resolve(getCallBackRes || false)
140
140
  }, timeout)
141
141
  })
142
142
  }
143
143
  console.log('=================>', 'updateBusinessDomainAndApi')
144
144
 
145
145
  checkStatusAndLogin(options = {}) {
146
146
 
147
147
  checkJdStatusAndLogin(options = {
148
148
  loginColor: {
149
149
  bzi: WXAPP_BIZ_SHOP_LIGHT_KEY,
150
150
  dpin: 0,
151
151
  },
152
152
  }){
153
153
  return this.checkStatusAndLogin(options)
154
154
  }
155
155
  loginColor: {
156
156
  bzi:WXAPP_BIZ_KEY,
157
157
  dpin: 1,
158
158
  },
159
159
  setTimeout(() => {
160
160
  console.log("微信app登录返回成功后,后台会写入cookie,有延迟,这里延迟500ms去获取最新cookie")
161
161
  this.getLoginCookie(`${Date.now()}`)
162
162
  },500)
163
163
  this.getLoginCookie(`${Date.now()}`)
164
164
  loginColor: {
165
165
  bzi:WXAPP_BIZ_KEY,
166
166
  dpin: 1,
167
167
  },
168
168
  setTimeout(() => {
169
169
  console.log("微信强制登录后,后台会写入cookie,有延迟,这里延迟500ms去获取最新cookie")
170
170
  this.getLoginCookie(`${Date.now()}`)
171
171
  },500)
172
172
 
173
173
  doLoginForJdPin(options = {}) {
174
174
  return this.doLogin({
175
175
  loginColor: {
176
176
  biz: WXAPP_BIZ_SHOP_LIGHT_KEY,
177
177
  dpin: 0,
178
178
  },
179
179
  ...options
180
180
  })
181
181
  }
182
182
  return new Promise((resolve) => {
183
183
  console.log("开始获取更新wxapp中的cookie信息", updateKey)
184
184
  if(this.config.wqCookie && this.config.wqCookieStr && this.config.getWqCookieKey === updateKey){
185
185
  console.log("已有存储wxapp中的cookie信息,直接返回",this.config)
186
186
  resolve({
187
187
  wqCookie: this.config.wqCookie,
188
188
  wqCookieStr: this.config.wqCookieStr,
189
189
  })
190
190
  }else {
191
191
  if (isPublishToWxapp) {
192
192
  const getWxappCookieObj = getTaroStorageKeyValue('cookies') || null
193
193
  if (getWxappCookieObj) {
194
194
  const getCookieObj = getWxappCookieObj['_data']
195
195
  const { wqCookie, wqCookieStr } = getWxAppCookieStr(getCookieObj)
196
196
  const { pin = '', visitkey = '-1', wq_unionid = '', wxapp_openid = '' } = wqCookie
197
197
  this.info.loginState = true
198
198
  this.info.userInfo.wqCookie = wqCookieStr
199
199
  this.info.userInfo.wqVisitkey = visitkey
200
200
  console.log('获取用户完整cookie信息', getCookieObj)
201
201
  const getUserAddress = this.wxAppUserInfoInstance.getAddress()
202
202
  console.log('获取微信用户地址信息', getUserAddress)
203
203
  if (getUserAddress) {
204
204
  this.info.pageInfo.address = getUserAddress?.areaId
205
205
  this.info.pageInfo.addressCommaStr = this.info.pageInfo
206
206
  .address
207
207
  ? this.info.pageInfo.address.replace(/_/g, ',')
208
208
  : ''
209
209
  this.info.pageInfo.un_area = this.info.pageInfo.address
210
210
  Taro.eventCenter.trigger(
211
211
  TaroEventType.USER_AREA_UPDATE,
212
212
  this.info.pageInfo.address,
213
213
  )
214
214
  }
215
215
  if(this.miniAppLogInstance){
216
216
  this.miniAppLogInstance.set({
217
217
  account: pin,
218
218
  unionid: wq_unionid,
219
219
  openid: wxapp_openid,
220
220
  })
221
221
  }
222
222
  this.config.wqCookie = wqCookie
223
223
  this.config.wqCookieStr = wqCookieStr
224
224
  this.config.getWqCookieKey = updateKey
225
225
  console.log("解析wxapp中的cookie信息成功,返回后存储",this.config)
226
226
  resolve({
227
227
  wqCookie,
228
228
  wqCookieStr,
229
229
  })
230
230
  }else {
231
231
  console.log("解析wxapp中的cookie信息异常,返回异常结果",this.config)
232
232
  resolve({
233
233
  wqCookie: false,
234
234
  wqCookieStr: false,
235
235
  })
236
236
  }
237
237
  }else {
238
238
  resolve({
239
239
  wqCookie: false,
240
240
  wqCookieStr: false,
241
241
  })
242
242
  }
243
243
  }
244
244
  })
245
245
 
246
246
  getAddressCachePromise = () => {
247
247
  return Promise.reject("该方法只在APP内适用")
248
248
  }
249
249
  this.info.originQueryInfo = {
250
250
  ...query
251
251
  }
@@ -0,0 +1 @@
1
+ export enum SgmCustomCode {
2
  REMOTEMODULE_DATA = 'remoteModule_interface_dataError',
1
3
  REMOTEMODULE_JS = 'remoteModule_render_jsError',
2
4
  SYSTEMMODULE_JS = 'systemModule_render_jsError',
@@ -0,0 +1 @@
1
+ import * as WXAPP_LOGIN from '../wxapp/common/login/login.js'
@@ -1 +1 @@
1
- import React from 'react'
2
1
  code: 'isvModuleError',
3
2
  msg: opt,
4
3
  })
5
4
  if(this.props.customErrorIsvFloorModule){
6
5
  return this.props.customErrorIsvFloorModule
7
6
  }
7
+ import React from 'react'
8
8
  const floorLoadWay = floorData?.floorExtInfo?.floorLoadWay
9
9
  const isRemoteLoadFloor = floorLoadWay === 2
10
10
  msg: `店铺h5楼层隐藏不显示。原因:模块js执行异常,楼层过滤。`,
11
11
  floorIdx: floorData?.floorIdx,
12
12
  moduleDesignerType: floorData?.floorExtInfo?.moduleDesignerType,
13
13
  floorLoadWay,
14
14
  floorKind: floorData?.floorExtInfo?.floorKind,
15
15
  }
16
16
  code: getSgmCustomCode(isRemoteLoadFloor ? SgmCustomCode.REMOTEMODULE_JS : SgmCustomCode.SYSTEMMODULE_JS),
17
17
  msg: opt,
18
18
  })
19
19
  if(this.props.customErrorIsvFloorModule){
20
20
  return this.props.customErrorIsvFloorModule
21
21
  }
@@ -0,0 +1 @@
1
+ import React from 'react'
2
  return (
1
3
  <ScrollView
2
4
  scrollX
3
5
  enhanced
4
6
  showScrollbar={false}
5
7
  {...otherProps}
6
8
  className={classNames(
7
9
  className,
8
10
  {
9
11
  [customScrollViewStyle[
10
12
  'd-custom-ios-mini-extend-border-radius'
11
13
  ]]:
12
14
  isIosDevice &&
13
15
  isJdMin &&
14
16
  scrollX &&
15
17
  style['borderRadius'],
16
18
  },
17
19
  {
18
20
  [customScrollViewStyle[
19
21
  'd-custom-ios-h5-extend-border-radius'
20
22
  ]]: isIosDevice,
21
23
  },
22
24
  {
23
25
  [customScrollViewStyle['d-custom-mini-hide-scroll']]:
24
26
  isJdMin,
25
27
  },
26
28
  )}
27
29
  style={style}
28
30
  >
29
31
  {children}
30
32
  </ScrollView>
31
33
  )
@@ -16,3 +16,10 @@
16
16
  width: 0;
17
17
  }
18
18
  }
19
+
20
+ .d-custom-mini-hide-scroll {
21
+ &::-webkit-scrollbar {
22
+ display: none;
23
+ width: 0;
24
+ }
25
+ }
@@ -1 +1 @@
1
- import { ComponentInterFace } from '../interface/component'
2
1
  const { floorData, builtInComponents = {} } = props
3
2
  const floorModuleType = floorData?.floorExtInfo?.moduleFlag
4
3
  const FloorContentItem =
5
4
  (floorModuleType && builtInComponents[floorModuleType]) || null
6
5
  const dataDefines = getFloorDataToDataDefines(floorData)
7
6
  return FloorContentItem ? (
8
7
  <ErrorBoundary {...props}>
9
8
  <FloorContentItem {...props} dataDefines={dataDefines} />
10
9
  </ErrorBoundary>
11
10
  ) : null
12
11
  renderSourceType: BUSINESS_TYPE.ONLINE,
13
12
  switch (moduleId) {
14
13
  case 83158:
15
14
  return 'freeLayout'
16
15
  case 99654:
17
16
  return 'activeText'
18
17
  case 100382:
19
18
  return 'superGoods'
20
19
  }
21
20
  floorList.map((item) => {
22
21
  if (!item.floorExtInfo) {
23
22
  return null
24
23
  }
25
24
  const moduleFlag = item.floorExtInfo.moduleFlag
26
25
  if (!moduleFlag) {
27
26
  const newModuleFlag = moduleId2ModuleFlag(item.moduleId)
28
27
  if (newModuleFlag) {
29
28
  item.floorExtInfo.moduleFlag = newModuleFlag
30
29
  }
31
30
  }
32
31
  })
32
+ import React from 'react'
33
33
  return FloorContentItem ? (
34
34
  <FloorContentItem {...props} dataDefines={dataDefines} />
35
35
  ) : isDevMode ? (
36
36
  renderDecorateDefaultModule()
37
37
  ) : null
@@ -1 +1 @@
1
- import React from 'react'
2
1
  return FloorContentItem ? (
3
2
  <FloorContentItem {...props} dataDefines={dataDefines} />
4
3
  ) : isDevMode ? (
5
4
  renderDecorateDefaultModule()
6
5
  ) : null
6
+ import React from 'react'
7
7
  return FloorContentItem ? (
8
8
  <ErrorBoundary {...props}>
9
9
  <FloorContentItem {...props} dataDefines={dataDefines} />
10
10
  </ErrorBoundary>
11
11
  ) : isDevMode ? (
12
12
  renderDecorateDefaultModule()
13
13
  ) : null
@@ -1 +1 @@
1
- import Taro from '@tarojs/taro'
2
1
  getBundleUrl,
3
2
  getBundleFileName,
4
3
  formatPackResult,
5
4
  const { floorData, renderSourceType, updateContainerFloorListDataFn } = props
6
5
  const dataDefines = getFloorDataToDataDefines(floorData)
7
6
  const [forceRenderTime,setForceRenderTime] = useState(1)
8
7
  useEffect(() => {
9
8
  isJdAndAndroidDevice && Taro.eventCenter.on(TaroEventType.FORCE_UPDATE_PAGE_LAYOUT, (_result) => {
10
9
  setForceRenderTime(Date.now())
11
10
  })
12
11
  return () => {
13
12
  isJdAndAndroidDevice && Taro.eventCenter.off(TaroEventType.FORCE_UPDATE_PAGE_LAYOUT)
14
13
  }
15
14
  },[])
16
15
 
17
16
  const getFloorSetHeight = (item) => {
18
17
  const getHeight = item?.floorExtInfo?.floorHeight
19
18
  ? Number(item?.floorExtInfo?.floorHeight)
20
19
  : 200
21
20
  return getHeight > 0 ? getHeight : 200
22
21
  }
23
22
  console.log(
24
23
  '>>>>>>>>>> floorModuleType === FloorModuleType.ISVDESIGNERH5MODULE >>>>>>>>>>',
25
24
  )
26
25
  const renderResult = (() => {
27
26
  try {
28
27
  console.log('>>>>>>>>>> 开始渲染1个isv模块 >>>>>>>>>>')
29
28
  console.log(
30
29
  '==========当前业务类型renderSourceType、楼层floorId: ',
31
30
  renderSourceType,
32
31
  floorData.uid,
33
32
  )
34
33
  const modularPackResult = floorData?.floorExtInfo?.modularPackResult
35
34
  const modularPackResultObj = formatPackResult(modularPackResult)
36
35
  const bundleUrl = getBundleUrl(modularPackResultObj)
37
36
  const bundleFileName = getBundleFileName(modularPackResultObj)
38
37
  const opt = {
39
38
  msg: `店铺首页isv h5楼层隐藏不显示。原因:modularPackResult数据不完备。页面类型-buildType: ${buildType}。楼层顺序-floorIdx: ${floorData?.floorIdx}`,
40
39
  buildType,
41
40
  uid: floorData?.uid,
42
41
  floorIdx: floorData?.floorIdx,
43
42
  shopId: floorData?.floorExtInfo?.shopId,
44
43
  moduleId: floorData?.moduleId,
45
44
  moduleName: floorData?.moduleName,
46
45
  middleTemplateId: floorData?.middleTemplateId,
47
46
  modularPackResult: modularPackResult,
48
47
  }
49
48
  if (bundleUrl && bundleFileName) {
50
49
  let ISVModule =
51
50
  taroJdBaseInfo?.renderedIsvComponents[
52
51
  `${floorData.uid}_${bundleFileName}`
53
52
  ] || null
54
53
  if (!ISVModule) {
55
54
  ISVModule = lazy(() => import(bundleFileName + '@@@@@@' + bundleUrl))
56
55
  console.log(
57
56
  '1|加载isv模块==========走lazy import生成新的isv模块react组件',
58
57
  bundleFileName,
59
58
  )
60
59
  taroJdBaseInfo.renderedIsvComponents[
61
60
  `${floorData.uid}_${bundleFileName}`
62
61
  ] = ISVModule
63
62
  console.log(
64
63
  '2|渲染isv模块的react组件==========,window.taroJshopH5WebpackJsonp上的组件是否已就绪: ',
65
64
  bundleFileName,
66
65
  window['taroJshopH5WebpackJsonp'].find(
67
66
  (item) => item[0][0] == bundleFileName,
68
67
  ),
69
68
  )
70
69
  } else {
71
70
  console.log(
72
71
  '1|加载isv模块==========不走lazy import生成新的isv模块react组件,从已加载中获取,taroJdBaseInfo: ',
73
72
  taroJdBaseInfo,
74
73
  )
75
74
  console.log(
76
75
  '2|渲染isv模块的react组件==========,taroJdBaseInfo.renderedIsvComponents上的组件是否已就绪: ',
77
76
  taroJdBaseInfo.renderedIsvComponents[
78
77
  `${floorData.uid}_${bundleFileName}`
79
78
  ],
80
79
  )
81
80
  }
82
81
  const _floorHeight = getFloorSetHeight(floorData)
83
82
  return (
84
83
  <ErrorBoundary {...props}>
85
84
  <Suspense
86
85
  fallback={
87
86
  <View
88
87
  style={{
89
88
  position: 'relative',
90
89
  background: `#ffffff url('${JD_PLACEHOLDER_IMG}') center center no-repeat`,
91
90
  height: `${_floorHeight}px`,
92
91
  }}
93
92
  ></View>
94
93
  }
95
94
  >
96
95
  <ISVFloor {...props} dataDefines={dataDefines} forceRenderTime={forceRenderTime} isRealTimeRender={realTimerRenderTypeList.includes(taroJdBaseInfo.info.pageInfo.dataType)}>
97
96
  <ISVModule {...props} dataDefines={dataDefines}></ISVModule>
98
97
  </ISVFloor>
99
98
  </Suspense>
100
99
  </ErrorBoundary>
101
100
  )
102
101
  } else {
103
102
  console.log(
104
103
  '3|isv模块渲染异常,modularPackResult中缺少bundleUrl或bundleFileName==========modularPackResult: ',
105
104
  modularPackResultObj,
106
105
  )
107
106
  sgmCustomReport({
108
107
  code: 'isvModuleError',
109
108
  msg: opt,
110
109
  })
111
110
  return null
112
111
  }
113
112
  } catch (err) {
114
113
  console.log('3|isv模块渲染异常,floorItem逻辑错误==========err: ', err)
115
114
  sgmCustomReport({
116
115
  code: 'isvModuleError',
117
116
  msg: {
118
117
  msg: 'remoteFloorItem try catch 异常',
119
118
  err,
120
119
  },
121
120
  })
122
121
  return null
123
122
  }
124
123
  })()
125
124
  if (renderResult === null) {
126
125
  updateContainerFloorListDataFn &&
127
126
  updateContainerFloorListDataFn({
128
127
  type: 'filter',
129
128
  containerId: floorData?.uid,
130
129
  })
131
130
  console.log('renderResult === null: 命中了!')
132
131
  taroEventSendPageScrollInfo()
133
132
  } else {
134
133
  console.log('renderResult !== null: 没命中', renderResult)
135
134
  }
136
135
  return renderResult
136
+ import Taro from '@tarojs/taro'
137
137
  getBundleUrl,
138
138
  getBundleFileName,
139
139
  formatPackResult,
140
140
  const { floorData, renderSourceType, updateContainerFloorListDataFn } = props
141
141
  const dataDefines = getFloorDataToDataDefines(floorData)
142
142
  const [forceRenderTime,setForceRenderTime] = useState(1)
143
143
  useEffect(() => {
144
144
  isJdAndAndroidDevice && Taro.eventCenter.on(TaroEventType.FORCE_UPDATE_PAGE_LAYOUT, (_result) => {
145
145
  setForceRenderTime(Date.now())
146
146
  })
147
147
  return () => {
148
148
  isJdAndAndroidDevice && Taro.eventCenter.off(TaroEventType.FORCE_UPDATE_PAGE_LAYOUT)
149
149
  }
150
150
  },[])
151
151
 
152
152
  const getFloorSetHeight = (item) => {
153
153
  const getHeight = item?.floorExtInfo?.floorHeight
154
154
  ? Number(item?.floorExtInfo?.floorHeight)
155
155
  : 200
156
156
  return getHeight > 0 ? getHeight : 200
157
157
  }
158
158
  console.log(
159
159
  '>>>>>>>>>> floorModuleType === FloorModuleType.ISVDESIGNERH5MODULE >>>>>>>>>>',
160
160
  )
161
161
  const renderResult = (() => {
162
162
  try {
163
163
  console.log('>>>>>>>>>> 开始渲染1个isv模块 >>>>>>>>>>')
164
164
  console.log(
165
165
  '==========当前业务类型renderSourceType、楼层floorId: ',
166
166
  renderSourceType,
167
167
  floorData.uid,
168
168
  )
169
169
  const modularPackResult = floorData?.floorExtInfo?.modularPackResult
170
170
  const modularPackResultObj = formatPackResult(modularPackResult)
171
171
  const bundleUrl = getBundleUrl(modularPackResultObj)
172
172
  const bundleFileName = getBundleFileName(modularPackResultObj)
173
173
  const opt = {
174
174
  msg: `店铺h5楼层隐藏不显示。原因:模块数据不完备,楼层过滤。`,
175
175
  floorIdx: floorData?.floorIdx,
176
176
  uid: floorData?.uid,
177
177
  shopId: floorData?.floorExtInfo?.shopId,
178
178
  moduleId: floorData?.moduleId,
179
179
  moduleDesignerType: floorData?.floorExtInfo?.moduleDesignerType,
180
180
  floorLoadWay: floorData?.floorExtInfo?.floorLoadWay,
181
181
  floorKind: floorData?.floorExtInfo?.floorKind,
182
182
  middleTemplateId: floorData?.middleTemplateId,
183
183
  modularPackResult: modularPackResult,
184
184
  }
185
185
  if (bundleUrl && bundleFileName) {
186
186
  let ISVModule =
187
187
  taroJdBaseInfo?.renderedIsvComponents[
188
188
  `${floorData.uid}_${bundleFileName}`
189
189
  ] || null
190
190
  if (!ISVModule) {
191
191
  ISVModule = lazy(() => import(bundleFileName + '@@@@@@' + bundleUrl))
192
192
  console.log(
193
193
  '1|加载isv模块==========走lazy import生成新的isv模块react组件',
194
194
  bundleFileName,
195
195
  )
196
196
  taroJdBaseInfo.renderedIsvComponents[
197
197
  `${floorData.uid}_${bundleFileName}`
198
198
  ] = ISVModule
199
199
  console.log(
200
200
  '2|渲染isv模块的react组件==========,window.taroJshopH5WebpackJsonp上的组件是否已就绪: ',
201
201
  bundleFileName,
202
202
  window['taroJshopH5WebpackJsonp'].find(
203
203
  (item) => item[0][0] == bundleFileName,
204
204
  ),
205
205
  )
206
206
  } else {
207
207
  console.log(
208
208
  '1|加载isv模块==========不走lazy import生成新的isv模块react组件,从已加载中获取,taroJdBaseInfo: ',
209
209
  taroJdBaseInfo,
210
210
  )
211
211
  console.log(
212
212
  '2|渲染isv模块的react组件==========,taroJdBaseInfo.renderedIsvComponents上的组件是否已就绪: ',
213
213
  taroJdBaseInfo.renderedIsvComponents[
214
214
  `${floorData.uid}_${bundleFileName}`
215
215
  ],
216
216
  )
217
217
  }
218
218
  const _floorHeight = getFloorSetHeight(floorData)
219
219
  return (
220
220
  <ErrorBoundary {...props}>
221
221
  <Suspense
222
222
  fallback={
223
223
  <View
224
224
  style={{
225
225
  position: 'relative',
226
226
  background: `#ffffff url('${JD_PLACEHOLDER_IMG}') center center no-repeat`,
227
227
  height: `${_floorHeight}px`,
228
228
  }}
229
229
  ></View>
230
230
  }
231
231
  >
232
232
  <ISVFloor {...props} dataDefines={dataDefines} forceRenderTime={forceRenderTime} isRealTimeRender={realTimerRenderTypeList.includes(taroJdBaseInfo.info.pageInfo.dataType)}>
233
233
  <ISVModule {...props} dataDefines={dataDefines}></ISVModule>
234
234
  </ISVFloor>
235
235
  </Suspense>
236
236
  </ErrorBoundary>
237
237
  )
238
238
  } else {
239
239
  console.log(
240
240
  '3|isv模块渲染异常,modularPackResult中缺少bundleUrl或bundleFileName==========modularPackResult: ',
241
241
  modularPackResultObj,
242
242
  )
243
243
  sgmCustomReport({
244
244
  code: getSgmCustomCode(SgmCustomCode.REMOTEMODULE_DATA),
245
245
  msg: opt,
246
246
  })
247
247
  return null
248
248
  }
249
249
  } catch (err) {
250
250
  console.log('3|isv模块渲染异常,floorItem逻辑错误==========err: ', err)
251
251
  return null
252
252
  }
253
253
  })()
254
254
  if (renderResult === null) {
255
255
  updateContainerFloorListDataFn &&
256
256
  updateContainerFloorListDataFn({
257
257
  type: 'filter',
258
258
  containerId: floorData?.uid,
259
259
  })
260
260
  console.log('renderResult === null: 命中了!')
261
261
  taroEventSendPageScrollInfo()
262
262
  } else {
263
263
  console.log('renderResult !== null: 没命中', renderResult)
264
264
  }
265
265
  return renderResult
@@ -1 +1 @@
1
- import Taro from '@tarojs/taro'
2
1
  floorVideInfo: object
3
2
  openAppData?: {
4
3
  [key: string]: any
5
4
  }
5
+ import Taro from '@tarojs/taro'
6
6
  isJingxiMiniViewState?: boolean
7
7
  floorVideInfo: object
8
8
  originQueryInfo: {
9
9
  openAppData?: {
10
10
  [key: string]: any
11
11
  }