@conecli/cone-render 0.8.32 → 0.8.34

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.
@@ -1 +1 @@
1
- import React, { Suspense, lazy } from 'react'
2
1
  BUSINESS_TYPE,
3
2
  RemoteLoadFloorList,
4
3
  JD_PLACEHOLDER_IMG,
5
4
  DraJSAgentReportException,
6
5
  DraJSAgentReport,
7
6
  const {
8
7
  floorData,
9
8
  renderSourceType,
10
9
  builtInComponents = {},
11
10
  updateContainerFloorListDataFn,
12
11
  } = props
13
12
  const isDevMode = renderSourceType === BUSINESS_TYPE.DECORATE
14
13
  const floorModuleType: any = floorData?.floorExtInfo?.moduleFlag
15
14
  const FloorContentItem =
16
15
  (floorModuleType && builtInComponents[floorModuleType]) || null
17
16
  const dataDefines = getFloorDataToDataDefines(floorData)
18
17
 
19
18
  const renderDecorateDefaultModule = () => {
20
19
  return (
21
20
  <View
22
21
  style={{
23
22
  lineHeight: '120px',
24
23
  textAlign: 'center',
25
24
  }}
26
25
  >
27
26
  当前模块是{floorData.moduleName}
28
27
  </View>
29
28
  )
30
29
  }
31
30
 
32
31
  const getFloorSetHeight = (item) => {
33
32
  const getHeight = item?.floorExtInfo?.floorHeight
34
33
  ? Number(item?.floorExtInfo?.floorHeight)
35
34
  : 200
36
35
  return getHeight > 0 ? getHeight : 200
37
36
  }
38
37
  if (floorModuleType && RemoteLoadFloorList.includes(floorModuleType)) {
39
38
  console.log(
40
39
  '>>>>>>>>>> floorModuleType === FloorModuleType.ISVDESIGNERH5MODULE >>>>>>>>>>',
41
40
  )
42
41
  const renderResult = (() => {
43
42
  try {
44
43
  console.log('>>>>>>>>>> 开始渲染1个isv模块 >>>>>>>>>>')
45
44
  console.log(
46
45
  '==========当前业务类型renderSourceType、楼层floorId: ',
47
46
  renderSourceType,
48
47
  floorData.uid,
49
48
  )
50
49
  const modularPackResult = floorData?.floorExtInfo?.modularPackResult
51
50
  const modularPackResultObj =
52
51
  typeof modularPackResult === 'string'
53
52
  ? JSON.parse(modularPackResult)
54
53
  : modularPackResult
55
54
  if (modularPackResultObj) {
56
55
  const { bundleUrl, bundleFileName } = modularPackResultObj
57
56
  if (bundleUrl && bundleFileName) {
58
57
  let ISVModule =
59
58
  taroJdBaseInfo?.renderedIsvComponents[
60
59
  `${floorData.uid}_${bundleFileName}`
61
60
  ] || null
62
61
  if (!ISVModule) {
63
62
  ISVModule = lazy(
64
63
  () => import(bundleFileName + '@@@@@@' + bundleUrl),
65
64
  )
66
65
  console.log(
67
66
  '1|加载isv模块==========走lazy import生成新的isv模块react组件',
68
67
  bundleFileName,
69
68
  )
70
69
  taroJdBaseInfo.renderedIsvComponents[
71
70
  `${floorData.uid}_${bundleFileName}`
72
71
  ] = ISVModule
73
72
  console.log(
74
73
  '2|渲染isv模块的react组件==========,window.taroJshopH5WebpackJsonp上的组件是否已就绪: ',
75
74
  bundleFileName,
76
75
  window['taroJshopH5WebpackJsonp'].find(
77
76
  (item) => item[0][0] == bundleFileName,
78
77
  ),
79
78
  )
80
79
  } else {
81
80
  console.log(
82
81
  '1|加载isv模块==========不走lazy import生成新的isv模块react组件,从已加载中获取,taroJdBaseInfo: ',
83
82
  taroJdBaseInfo,
84
83
  )
85
84
  console.log(
86
85
  '2|渲染isv模块的react组件==========,taroJdBaseInfo.renderedIsvComponents上的组件是否已就绪: ',
87
86
  taroJdBaseInfo.renderedIsvComponents[
88
87
  `${floorData.uid}_${bundleFileName}`
89
88
  ],
90
89
  )
91
90
  }
92
91
  const _floorHeight = getFloorSetHeight(floorData)
93
92
  return (
94
93
  <ErrorBoundary {...props}>
95
94
  <Suspense
96
95
  fallback={
97
96
  <View
98
97
  style={{
99
98
  position: 'relative',
100
99
  background: `#ffffff url('${JD_PLACEHOLDER_IMG}') center center no-repeat`,
101
100
  height: `${_floorHeight}px`,
102
101
  }}
103
102
  ></View>
104
103
  }
105
104
  >
106
105
  <ISVFloor {...props} dataDefines={dataDefines}>
107
106
  <ISVModule {...props} dataDefines={dataDefines}></ISVModule>
108
107
  </ISVFloor>
109
108
  </Suspense>
110
109
  </ErrorBoundary>
111
110
  )
112
111
  } else {
113
112
  console.log(
114
113
  '3|isv模块渲染异常,modularPackResult中缺少bundleUrl或bundleFileName==========modularPackResult: ',
115
114
  modularPackResultObj,
116
115
  )
117
116
  DraJSAgentReport(
118
117
  `店铺首页isv h5楼层隐藏不显示。原因:modularPackResult数据不完备。页面类型-buildType: ${buildType}。楼层顺序-floorIdx: ${floorData?.floorIdx}`,
119
118
  {
120
119
  buildType,
121
120
  uid: floorData?.uid,
122
121
  floorIdx: floorData?.floorIdx,
123
122
  shopId: floorData?.floorExtInfo?.shopId,
124
123
  moduleId: floorData?.moduleId,
125
124
  moduleName: floorData?.moduleName,
126
125
  middleTemplateId: floorData?.middleTemplateId,
127
126
  modularPackResult: modularPackResult,
128
127
  },
129
128
  )
130
129
  return null
131
130
  }
132
131
  } else {
133
132
  console.log(
134
133
  '3|isv模块渲染异常,缺少modularPackResult==========modularPackResult: ',
135
134
  modularPackResultObj,
136
135
  )
137
136
  DraJSAgentReport(
138
137
  `店铺首页isv h5楼层隐藏不显示。原因:modularPackResult数据不完备。页面类型-buildType: ${buildType}。楼层顺序-floorIdx: ${floorData?.floorIdx}`,
139
138
  {
140
139
  buildType,
141
140
  uid: floorData?.uid,
142
141
  floorIdx: floorData?.floorIdx,
143
142
  shopId: floorData?.floorExtInfo?.shopId,
144
143
  moduleId: floorData?.moduleId,
145
144
  moduleName: floorData?.moduleName,
146
145
  middleTemplateId: floorData?.middleTemplateId,
147
146
  modularPackResult: modularPackResult,
148
147
  },
149
148
  )
150
149
  return null
151
150
  }
152
151
  } catch (err) {
153
152
  console.log('3|isv模块渲染异常,floorItem逻辑错误==========err: ', err)
154
153
  DraJSAgentReportException(err)
155
154
  return null
156
155
  }
157
156
  })()
158
157
  if (renderResult === null) {
159
158
  updateContainerFloorListDataFn &&
160
159
  updateContainerFloorListDataFn({
161
160
  type: 'filter',
162
161
  containerId: floorData?.uid,
163
162
  })
164
163
  console.log('renderResult === null: 命中了!')
165
164
  taroEventSendPageScrollInfo()
166
165
  } else {
167
166
  console.log('renderResult !== null: 没命中', renderResult)
168
167
  }
169
168
  return renderResult
170
169
  } else {
171
170
  return FloorContentItem ? (
172
171
  <ErrorBoundary {...props}>
173
172
  <FloorContentItem {...props} dataDefines={dataDefines} />
174
173
  </ErrorBoundary>
175
174
  ) : isDevMode ? (
176
175
  renderDecorateDefaultModule()
177
176
  ) : null
178
177
  }
179
178
  renderSourceType: BUSINESS_TYPE.ONLINE,
180
179
  switch (moduleId) {
181
180
  case 83158:
182
181
  return 'freeLayout'
183
182
  case 99654:
184
183
  return 'activeText'
185
184
  case 100382:
186
185
  return 'superGoods'
187
186
  }
188
187
  floorList.map((item) => {
189
188
  if (!item.floorExtInfo) {
190
189
  return null
191
190
  }
192
191
  const moduleFlag = item.floorExtInfo.moduleFlag
193
192
  if (!moduleFlag) {
194
193
  const newModuleFlag = moduleId2ModuleFlag(item.moduleId)
195
194
  if (newModuleFlag) {
196
195
  item.floorExtInfo.moduleFlag = newModuleFlag
197
196
  }
198
197
  }
199
198
  })
199
+ import React from 'react'
200
200
  const { floorData, renderSourceType, builtInComponents = {} } = props
201
201
  const isDevMode = renderSourceType === BUSINESS_TYPE.DECORATE
202
202
  const floorModuleType: any = floorData?.floorExtInfo?.moduleFlag
203
203
  const FloorContentItem =
204
204
  (floorModuleType && builtInComponents[floorModuleType]) || null
205
205
  const dataDefines = getFloorDataToDataDefines(floorData)
206
206
 
207
207
  const renderDecorateDefaultModule = () => {
208
208
  return (
209
209
  <View
210
210
  style={{
211
211
  lineHeight: '120px',
212
212
  textAlign: 'center',
213
213
  }}
214
214
  >
215
215
  当前模块是{floorData.moduleName}
216
216
  </View>
217
217
  )
218
218
  }
219
219
  if (floorModuleType && RemoteLoadFloorList.includes(floorModuleType)) {
220
220
  return (
221
221
  <RemoteFloorItem {...props} dataDefines={dataDefines}></RemoteFloorItem>
222
222
  )
223
223
  } else {
224
224
  return FloorContentItem ? (
225
225
  <ErrorBoundary {...props}>
226
226
  <FloorContentItem {...props} dataDefines={dataDefines} />
227
227
  </ErrorBoundary>
228
228
  ) : isDevMode ? (
229
229
  renderDecorateDefaultModule()
230
230
  ) : null
231
231
  }
232
232
  renderSourceType: BUSINESS_TYPE.ONLINE,
233
233
  switch (moduleId) {
234
234
  case 83158:
235
235
  return 'freeLayout'
236
236
  case 99654:
237
237
  return 'activeText'
238
238
  case 100382:
239
239
  return 'superGoods'
240
240
  }
241
241
  floorList.map((item) => {
242
242
  if (!item.floorExtInfo) {
243
243
  return null
244
244
  }
245
245
  const moduleFlag = item.floorExtInfo.moduleFlag
246
246
  if (!moduleFlag) {
247
247
  const newModuleFlag = moduleId2ModuleFlag(item.moduleId)
248
248
  if (newModuleFlag) {
249
249
  item.floorExtInfo.moduleFlag = newModuleFlag
250
250
  }
251
251
  }
252
252
  })
@@ -0,0 +1 @@
1
+ import React, { Suspense, lazy } from 'react'
2
  const { floorData, renderSourceType, updateContainerFloorListDataFn } = props
1
3
  const dataDefines = getFloorDataToDataDefines(floorData)
2
4
 
3
5
  const getFloorSetHeight = (item) => {
4
6
  const getHeight = item?.floorExtInfo?.floorHeight
5
7
  ? Number(item?.floorExtInfo?.floorHeight)
6
8
  : 200
7
9
  return getHeight > 0 ? getHeight : 200
8
10
  }
9
11
  console.log(
10
12
  '>>>>>>>>>> floorModuleType === FloorModuleType.ISVDESIGNERH5MODULE >>>>>>>>>>',
11
13
  )
12
14
  const renderResult = (() => {
13
15
  try {
14
16
  console.log('>>>>>>>>>> 开始渲染1个isv模块 >>>>>>>>>>')
15
17
  console.log(
16
18
  '==========当前业务类型renderSourceType、楼层floorId: ',
17
19
  renderSourceType,
18
20
  floorData.uid,
19
21
  )
20
22
  const modularPackResult = floorData?.floorExtInfo?.modularPackResult
21
23
  const modularPackResultObj =
22
24
  typeof modularPackResult === 'string'
23
25
  ? JSON.parse(modularPackResult)
24
26
  : modularPackResult
25
27
  const opt = {
26
28
  msg: `店铺首页isv h5楼层隐藏不显示。原因:modularPackResult数据不完备。页面类型-buildType: ${buildType}。楼层顺序-floorIdx: ${floorData?.floorIdx}`,
27
29
  buildType,
28
30
  uid: floorData?.uid,
29
31
  floorIdx: floorData?.floorIdx,
30
32
  shopId: floorData?.floorExtInfo?.shopId,
31
33
  moduleId: floorData?.moduleId,
32
34
  moduleName: floorData?.moduleName,
33
35
  middleTemplateId: floorData?.middleTemplateId,
34
36
  modularPackResult: modularPackResult,
35
37
  }
36
38
  if (modularPackResultObj) {
37
39
  const { bundleUrl, bundleFileName } = modularPackResultObj
38
40
  if (bundleUrl && bundleFileName) {
39
41
  let ISVModule =
40
42
  taroJdBaseInfo?.renderedIsvComponents[
41
43
  `${floorData.uid}_${bundleFileName}`
42
44
  ] || null
43
45
  if (!ISVModule) {
44
46
  ISVModule = lazy(
45
47
  () => import(bundleFileName + '@@@@@@' + bundleUrl),
46
48
  )
47
49
  console.log(
48
50
  '1|加载isv模块==========走lazy import生成新的isv模块react组件',
49
51
  bundleFileName,
50
52
  )
51
53
  taroJdBaseInfo.renderedIsvComponents[
52
54
  `${floorData.uid}_${bundleFileName}`
53
55
  ] = ISVModule
54
56
  console.log(
55
57
  '2|渲染isv模块的react组件==========,window.taroJshopH5WebpackJsonp上的组件是否已就绪: ',
56
58
  bundleFileName,
57
59
  window['taroJshopH5WebpackJsonp'].find(
58
60
  (item) => item[0][0] == bundleFileName,
59
61
  ),
60
62
  )
61
63
  } else {
62
64
  console.log(
63
65
  '1|加载isv模块==========不走lazy import生成新的isv模块react组件,从已加载中获取,taroJdBaseInfo: ',
64
66
  taroJdBaseInfo,
65
67
  )
66
68
  console.log(
67
69
  '2|渲染isv模块的react组件==========,taroJdBaseInfo.renderedIsvComponents上的组件是否已就绪: ',
68
70
  taroJdBaseInfo.renderedIsvComponents[
69
71
  `${floorData.uid}_${bundleFileName}`
70
72
  ],
71
73
  )
72
74
  }
73
75
  const _floorHeight = getFloorSetHeight(floorData)
74
76
  return (
75
77
  <ErrorBoundary {...props}>
76
78
  <Suspense
77
79
  fallback={
78
80
  <View
79
81
  style={{
80
82
  position: 'relative',
81
83
  background: `#ffffff url('${JD_PLACEHOLDER_IMG}') center center no-repeat`,
82
84
  height: `${_floorHeight}px`,
83
85
  }}
84
86
  ></View>
85
87
  }
86
88
  >
87
89
  <ISVFloor {...props} dataDefines={dataDefines}>
88
90
  <ISVModule {...props} dataDefines={dataDefines}></ISVModule>
89
91
  </ISVFloor>
90
92
  </Suspense>
91
93
  </ErrorBoundary>
92
94
  )
93
95
  } else {
94
96
  console.log(
95
97
  '3|isv模块渲染异常,modularPackResult中缺少bundleUrl或bundleFileName==========modularPackResult: ',
96
98
  modularPackResultObj,
97
99
  )
98
100
  sgmCustomReport({
99
101
  code: 'isvModuleError',
100
102
  msg: opt,
101
103
  })
102
104
  return null
103
105
  }
104
106
  } else {
105
107
  console.log(
106
108
  '3|isv模块渲染异常,缺少modularPackResult==========modularPackResult: ',
107
109
  modularPackResultObj,
108
110
  )
109
111
  sgmCustomReport({
110
112
  code: 'isvModuleError',
111
113
  msg: opt,
112
114
  })
113
115
  return null
114
116
  }
115
117
  } catch (err) {
116
118
  console.log('3|isv模块渲染异常,floorItem逻辑错误==========err: ', err)
117
119
  sgmCustomReport({
118
120
  code: 'isvModuleError',
119
121
  msg: {
120
122
  msg: 'remoteFloorItem try catch 异常',
121
123
  err
122
124
  },
123
125
  })
124
126
  return null
125
127
  }
126
128
  })()
127
129
  if (renderResult === null) {
128
130
  updateContainerFloorListDataFn &&
129
131
  updateContainerFloorListDataFn({
130
132
  type: 'filter',
131
133
  containerId: floorData?.uid,
132
134
  })
133
135
  console.log('renderResult === null: 命中了!')
134
136
  taroEventSendPageScrollInfo()
135
137
  } else {
136
138
  console.log('renderResult !== null: 没命中', renderResult)
137
139
  }
138
140
  return renderResult
@@ -1 +1 @@
1
- export declare namespace JumpEventReportInterFace {
2
1
  export interface ShopIdsInfo {
3
2
  shopId?: number | string
4
3
  venderId?: number | string
5
4
  logEventInfo?: object
6
5
  type?: string
7
6
  }
8
7
  export interface RouterInfo {
9
8
  params: any
10
9
  pageParamStr?: string
11
10
  [key: string]: any
12
11
  }
13
12
  export interface JumpMiniPath {
14
13
  shop: string
15
14
  shopx: string
16
15
  detail: string
17
16
  searchCoupon: string
18
17
  h5: string
19
18
  jingGouHome: string
20
19
  shopFans: string
21
20
  shopLight: string
22
21
  couponSearch: string
23
22
  }
24
23
  export interface jumpWebUrl {
25
24
  mshop: string
26
25
  pages: string
27
26
  couponSearch: string
28
27
  shopSecondActivity: string
29
28
  shopLight: string
30
29
  detail: string
31
30
  mobileHome: string
32
31
  rank: string
33
32
  wqShopMember: string
34
33
  wqShopDetail: string
35
34
  wqShopSearch: string
36
35
  shopMember: string
37
36
  shopMemberPointDetail: string
38
37
  shopMemberBenefit: string
39
38
  shopMemberRule: string
40
39
  shopMemberCloseAccount: string
41
40
  shopMemberPointExchange: string
42
41
  shopMemberBonusPurchase: string
43
42
  shopMemberGood: string
44
43
  beanDetail: string
45
44
  totalPromotion: string
46
45
  mLive: string
47
46
  shopHome: string
48
47
  shopIntroduce: string
49
48
  shopSearch: string
50
49
  shopLottery: string
51
50
  shopCoupon: string
52
51
  shopWares: string
53
52
  shopFastShopping: string
54
53
  shopSpeciSeckill: string
55
54
  shopVideos: string
56
55
  shopUseShareOrderUgcContent: string
57
56
  dongDongChat: string
58
57
  samCenter: string
59
58
  samCard: string
60
59
  shopH5MemberCardAPP: string
61
60
  shopH5MemberCardM: string
62
61
  }
63
62
  export interface EventReportConfig {
64
63
  routerInfo: RouterInfo
65
64
  nativeEvent: any
66
65
  }
67
66
  export interface OptEventLogParams {
68
67
  eventId?: string
69
68
  eventParam?: string | object
70
69
  pTag?: string
71
70
  jsonParam?: {
72
71
  [key: string]: any
73
72
  }
74
73
  skuId?: string | number
75
74
  eventLevel?: string
76
75
  exposureState?: boolean
77
76
  otherParams?: object
78
77
  }
79
78
 
80
79
  export interface JumpH5ReportConfig {
81
80
  shopId?: number | string
82
81
  venderId?: number | string
83
82
  sourceValue?: string
84
83
  sourceType?: string
85
84
  }
86
85
  export interface JumpEventReportInit extends EventReportConfig {
87
86
  getConfig(opt): EventReportConfig
88
87
  updateInfo(routerInfo, logPname): void
89
88
  }
90
89
  export interface CouponUrlParams {
91
90
  batchId: number
92
91
  bindType: number
93
92
  startTime?: number
94
93
  endTime?: number
95
94
  quangoufrom?: number
96
95
  sceneId?: number
97
96
  }
98
97
  export interface JdMiniJumpParams {
99
98
  param: string | object
100
99
  sourceValue: string
101
100
  sourceType: string
102
101
  des?: any
103
102
  logEventInfo?: object
104
103
  }
105
104
  export interface LinkMiniParams {
106
105
  param?: {
107
106
  pageType?: string
108
107
  }
109
108
  appId?: string | number
110
109
  path?: string
111
110
  }
112
111
  export interface JdJumpWxappReportConfig {
113
112
  wxApiVersion: string
114
113
  wxApiUrl: string
115
114
  wqReportUrl: string
116
115
  }
116
+ export declare namespace JumpEventReportInterFace {
117
117
  export interface ShopIdsInfo {
118
118
  shopId?: number | string
119
119
  venderId?: number | string
120
120
  logEventInfo?: object
121
121
  type?: string
122
122
  }
123
123
  export interface RouterInfo {
124
124
  params: any
125
125
  pageParamStr?: string
126
126
  [key: string]: any
127
127
  }
128
128
  export interface JumpMiniPath {
129
129
  shop: string
130
130
  shopx: string
131
131
  detail: string
132
132
  searchCoupon: string
133
133
  h5: string
134
134
  jingGouHome: string
135
135
  shopFans: string
136
136
  shopLight: string
137
137
  couponSearch: string
138
138
  shopSearch: string
139
139
  }
140
140
  export interface jumpWebUrl {
141
141
  mshop: string
142
142
  pages: string
143
143
  couponSearch: string
144
144
  shopSecondActivity: string
145
145
  shopLight: string
146
146
  detail: string
147
147
  mobileHome: string
148
148
  rank: string
149
149
  wqShopMember: string
150
150
  wqShopDetail: string
151
151
  wqShopSearch: string
152
152
  shopMember: string
153
153
  shopMemberPointDetail: string
154
154
  shopMemberBenefit: string
155
155
  shopMemberRule: string
156
156
  shopMemberCloseAccount: string
157
157
  shopMemberPointExchange: string
158
158
  shopMemberBonusPurchase: string
159
159
  shopMemberGood: string
160
160
  beanDetail: string
161
161
  totalPromotion: string
162
162
  mLive: string
163
163
  shopHome: string
164
164
  shopIntroduce: string
165
165
  shopSearch: string
166
166
  shopLottery: string
167
167
  shopCoupon: string
168
168
  shopWares: string
169
169
  shopFastShopping: string
170
170
  shopSpeciSeckill: string
171
171
  shopVideos: string
172
172
  shopUseShareOrderUgcContent: string
173
173
  dongDongChat: string
174
174
  samCenter: string
175
175
  samCard: string
176
176
  shopH5MemberCardAPP: string
177
177
  shopH5MemberCardM: string
178
178
  }
179
179
  export interface EventReportConfig {
180
180
  routerInfo: RouterInfo
181
181
  nativeEvent: any
182
182
  }
183
183
  export interface OptEventLogParams {
184
184
  eventId?: string
185
185
  eventParam?: string | object
186
186
  pTag?: string
187
187
  jsonParam?: {
188
188
  [key: string]: any
189
189
  }
190
190
  skuId?: string | number
191
191
  eventLevel?: string
192
192
  exposureState?: boolean
193
193
  otherParams?: object
194
194
  }
195
195
 
196
196
  export interface JumpH5ReportConfig {
197
197
  shopId?: number | string
198
198
  venderId?: number | string
199
199
  sourceValue?: string
200
200
  sourceType?: string
201
201
  }
202
202
  export interface JumpEventReportInit extends EventReportConfig {
203
203
  getConfig(opt): EventReportConfig
204
204
  updateInfo(routerInfo, logPname): void
205
205
  }
206
206
  export interface CouponUrlParams {
207
207
  batchId: number
208
208
  bindType: number
209
209
  startTime?: number
210
210
  endTime?: number
211
211
  quangoufrom?: number
212
212
  sceneId?: number
213
213
  }
214
214
  export interface JdMiniJumpParams {
215
215
  param: string | object
216
216
  sourceValue: string
217
217
  sourceType: string
218
218
  des?: any
219
219
  logEventInfo?: object
220
220
  }
221
221
  export interface LinkMiniParams {
222
222
  param?: {
223
223
  pageType?: string
224
224
  }
225
225
  appId?: string | number
226
226
  path?: string
227
227
  }
228
228
  export interface JdJumpWxappReportConfig {
229
229
  wxApiVersion: string
230
230
  wxApiUrl: string
231
231
  wqReportUrl: string
232
232
  }