@conecli/cone-render 0.10.1-shop-beta.4 → 0.10.1-shop-beta.6

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 (102) hide show
  1. package/dist/api/index.ts +1 -1
  2. package/dist/common/const.ts +1 -1
  3. package/dist/common/environmentType.ts +1 -1
  4. package/dist/common/index.h5.ts +1 -1
  5. package/dist/common/index.jd.ts +1 -1
  6. package/dist/common/index.ts +1 -1
  7. package/dist/common/index.weapp.ts +1 -1
  8. package/dist/common/pageType.ts +1 -1
  9. package/dist/common/sgmCustomCode.ts +1 -1
  10. package/dist/common/token/token.jd.ts +1 -1
  11. package/dist/components/ErrorBoundary.tsx +1 -1
  12. package/dist/components/base/CommonFloorHead/index.module.scss +126 -111
  13. package/dist/components/base/CommonFloorHead/index.tsx +1 -1
  14. package/dist/components/base/CountDown/index.module.scss +49 -44
  15. package/dist/components/base/CountDown/index.tsx +1 -1
  16. package/dist/components/base/CustomScrollView/index-back.tsx +1 -0
  17. package/dist/components/base/CustomScrollView/index.tsx +1 -1
  18. package/dist/components/base/CustomVideo/common.ts +1 -0
  19. package/dist/components/base/CustomVideo/index.tsx +1 -1
  20. package/dist/components/base/Dialog/index.module.scss +11 -0
  21. package/dist/components/base/ExposureSmart/index.h5.module.scss +12 -2
  22. package/dist/components/base/ExposureSmart/index.h5.tsx +1 -1
  23. package/dist/components/base/ExposureSmart/reporter.tsx +1 -1
  24. package/dist/components/base/InOrOutViewObserver/index.tsx +1 -1
  25. package/dist/components/base/InViewRender/index.tsx +1 -1
  26. package/dist/components/base/InViewRender/index.weapp.tsx +1 -1
  27. package/dist/components/base/ItemViewExposureSmart/index.module.scss +2 -2
  28. package/dist/components/base/ItemViewExposureSmart/index.tsx +1 -1
  29. package/dist/components/base/LazyLayoutLoad/index.tsx +1 -1
  30. package/dist/components/base/LazyLayoutLoad/index.weapp.tsx +1 -1
  31. package/dist/components/base/LazyLoadImage/index.h5.module.scss +11 -3
  32. package/dist/components/base/LazyLoadImage/index.h5.tsx +1 -1
  33. package/dist/components/base/LazyLoadImage/index.tsx +1 -1
  34. package/dist/components/base/MobileCommonHeader/index.tsx +1 -1
  35. package/dist/components/base/NetworkDataError/index.module.scss +3 -0
  36. package/dist/components/base/NetworkDataError/index.tsx +1 -1
  37. package/dist/components/base/Price/Base/index.tsx +1 -1
  38. package/dist/components/base/Price/Double/index.module.scss +8 -0
  39. package/dist/components/base/Price/Double/index.tsx +1 -1
  40. package/dist/components/decorate/DecorateFloorModule/index.module.scss +11 -0
  41. package/dist/components/decorate/DecorateFloorModule/index.tsx +1 -1
  42. package/dist/components/decorate/EmptyFloorModule/index.tsx +1 -1
  43. package/dist/components/decorate/PlaceHolder/index.tsx +1 -1
  44. package/dist/components/floorItem.jd.tsx +1 -1
  45. package/dist/components/floorItem.tsx +1 -1
  46. package/dist/components/floorItem.weapp.tsx +1 -1
  47. package/dist/components/isv/Floor/index.tsx +1 -1
  48. package/dist/components/remoteFloorItem.tsx +1 -1
  49. package/dist/interface/common.ts +1 -1
  50. package/dist/interface/component.ts +1 -1
  51. package/dist/interface/jumpEventReport.ts +1 -1
  52. package/dist/interface/service.ts +1 -1
  53. package/dist/jumpEventReport/base.ts +1 -1
  54. package/dist/jumpEventReport/const.ts +1 -1
  55. package/dist/jumpEventReport/index.jd.ts +1 -1
  56. package/dist/jumpEventReport/index.weapp.ts +1 -1
  57. package/dist/jumpEventReport/jdJumpJdApp.ts +1 -1
  58. package/dist/jumpEventReport/jumpUrlConfig/base.ts +1 -1
  59. package/dist/jumpEventReport/logEventConfig.ts +1 -1
  60. package/dist/jumpEventReport/web/report.ts +1 -1
  61. package/dist/jumpEventReport/web.base.ts +1 -1
  62. package/dist/jumpEventReport/web.jd.ts +1 -1
  63. package/dist/jumpEventReport/web.jdb.ts +1 -1
  64. package/dist/jumpEventReport/web.jdjch.ts +1 -1
  65. package/dist/jumpEventReport/web.jxwxapp.ts +1 -1
  66. package/dist/jumpEventReport/web.pc.ts +1 -1
  67. package/dist/jumpEventReport/web.tjapp.ts +1 -1
  68. package/dist/jumpEventReport/web.tjm.ts +1 -1
  69. package/dist/jumpEventReport/web.wxapp.ts +1 -1
  70. package/dist/libs/taroAppReport.js +2 -2
  71. package/dist/modules/ContainerFloorList/index.h5.module.scss +66 -52
  72. package/dist/modules/ContainerFloorList/index.h5.tsx +1 -1
  73. package/dist/modules/ContainerFloorList/index.tsx +1 -1
  74. package/dist/open/api/device.ts +1 -1
  75. package/dist/open/api/request.ts +1 -1
  76. package/dist/open/api/shopMember.ts +1 -1
  77. package/dist/open/api/util.ts +1 -1
  78. package/dist/open/components/index.ts +1 -1
  79. package/dist/sass/app.h5.scss +275 -221
  80. package/dist/sass/base.scss +183 -137
  81. package/dist/service/fetchGateway.ts +1 -1
  82. package/dist/service/fetchGateway.weapp.ts +1 -0
  83. package/dist/service/http/colorSign.ts +1 -1
  84. package/dist/service/http/const.ts +1 -1
  85. package/dist/service/http/h5Http.ts +1 -0
  86. package/dist/service/http/index.h5.ts +1 -0
  87. package/dist/service/requestServer.h5.ts +1 -0
  88. package/dist/service/requestServer.ts +1 -1
  89. package/dist/service/requestServer.weapp.ts +1 -0
  90. package/dist/utils/connectNativeJsBridge.ts +1 -1
  91. package/dist/utils/connectNativeJsBridge.weapp.ts +1 -1
  92. package/dist/utils/h5Utils.ts +1 -1
  93. package/dist/utils/index.h5.ts +1 -1
  94. package/dist/utils/index.ts +1 -1
  95. package/dist/utils/index.weapp.ts +1 -1
  96. package/dist/utils/jumpExtMapUtil.js +1 -0
  97. package/dist/utils/sColor.js +1 -0
  98. package/dist/utils/sgmCodeUtils.ts +1 -1
  99. package/dist/utils/taroRenderUtil.ts +1 -1
  100. package/dist/utils/utils.ts +1 -1
  101. package/package.json +53 -28
  102. package/dist/utils/memberFormatUtils.js +0 -1
@@ -1 +1 @@
1
- import Taro from '@tarojs/taro'
2
1
  WXAPP_LOGIN,
3
2
  WXAPP_BIZ,
4
3
  WXAPP_USER_INFO,
5
4
  WXAPP_NAVIGATOR,
6
5
  WXAPP_REPORT_GDT,
7
6
  WXAPP_PARAMS_SIGN,
8
7
  WXAPP_FINGER_REPORT,
9
8
  WXAPP_REPORT_MANAGE,
10
9
  WXAPP_SUBS_GUIDER,
11
10
  BUSINESS_TYPE,
12
11
  SHOP_MENU_ID_TYPE,
13
12
  SHOP_MENU_ID_NAME,
14
13
  SECTION_HOME_TAB_NAME_TYPE,
15
14
  SECTION_HOME_TAB_TYPE,
16
15
  TaroEventType,
17
16
  WX_BUSINESS_TYPE,
18
17
  WXAPP_BIZ_KEY,
19
18
  WXAPP_BIZ_SHOP_LIGHT_KEY,
20
19
  getSystemInfos,
21
20
  getTaroStorageKeyValue,
22
21
  getWxAppCookieStr,
23
22
  objectToUrlEncode,
24
23
  loginState: jdUserLoginState,
25
24
  cookiesStr: '',
26
25
  userInfo: userPinKey,
27
26
  pageInfo: {
28
27
  wxBusinessType: WX_BUSINESS_TYPE.SHOP,
29
28
  address: '',
30
29
  addressCommaStr: '',
31
30
  un_area: '',
32
31
  vapptype: '1',
33
32
  pageType: 'home',
34
33
  dataType: BUSINESS_TYPE.ONLINE,
35
34
  floorExposureInfo: {},
36
35
  floorVideInfo: {},
37
36
  productVideInfo: {},
38
37
  tabsLoadAllDataInfo: {
39
38
  [SECTION_HOME_TAB_NAME_TYPE[
40
39
  SECTION_HOME_TAB_TYPE.HOME_WELL_CHOSEN
41
40
  ]]: false,
42
41
  [SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.CLASSIFY]]: true,
43
42
  },
44
43
  updateShopInfosAllState: false,
45
44
  isVipShop: false,
46
45
  isJdShowNativeImmersivePlayer: false,
47
46
  ...shopConfig,
48
47
  pageScrollTop: 0,
49
48
  pageIdxHeightInfo: {
50
49
  list: [],
51
50
  },
52
51
  shopNavBarHeight: 0,
53
52
  },
54
53
  defaultQueryLogInfo: {
55
54
  sourceType: 'JDshop',
56
55
  sourceValue: '',
57
56
  moduleId: 'none',
58
57
  entrance: 'none',
59
58
  },
60
59
  originQueryInfo: {},
61
60
  sysInfo: {
62
61
  windowWidth: 0,
63
62
  windowHeight: 0,
64
63
  netWorkType: '4g',
65
64
  jdBottomBarHeight: 0,
66
65
  jdNativeHeaderHeight: 0,
67
66
  },
68
67
  queryInfo: {},
69
68
  shopInfo: {},
70
69
  openAppData: {},
71
70
  public info: CommonInterFace.BaseConfigInfo
72
71
  public config: {
73
72
  [key: string]: any
74
73
  }
75
74
  public lazyContainer: CommonInterFace.lazyContainer
76
75
  public rootEleNode: HTMLElement | null
77
76
  public miniApplogUtil: CommonInterFace.MiniApplogUtil
78
77
  public miniAppLogInstance: CommonInterFace.MiniAppLog | null
79
78
  public checkStatusAndLoginPromise: object | null
80
79
  public wxAppLoginInstance: CommonInterFace.WxAppLogin
81
80
  public wxAppBizInstance: CommonInterFace.WxAppUserInfo
82
81
  public wxAppUserInfoInstance: CommonInterFace.WxAppUserInfo
83
82
  public wxAppReportManageInstance: CommonInterFace.wxAppReportManage
84
83
  public wxAppReportGDTInstance: CommonInterFace.WxAppReportGDT
85
84
  public wxAppNavigatorInstance: CommonInterFace.WxAppNavigator
86
85
  public wxAppParamsSignInstance: CommonInterFace.wxAppParamsSign
87
86
  public wxAppFingerReportInstance: CommonInterFace.wxAppParamsSign
88
87
  public wxAppSubsGuider: CommonInterFace.wxAppParamsSign
89
88
  constructor(opt) {
90
89
  this.info = this._getConfig(opt)
91
90
  this.config = {}
92
91
  this.lazyContainer = {
93
92
  [SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_WELL_CHOSEN]]: {
94
93
  appLazyContainerList: [],
95
94
  appLazyFinishContainerList: [],
96
95
  },
97
96
  [SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_PROMOTION]]: {
98
97
  appLazyContainerList: [],
99
98
  appLazyFinishContainerList: [],
100
99
  },
101
100
  }
102
101
  this.rootEleNode = null
103
102
  this.miniApplogUtil = MiniAppLogUtil
104
103
  this.miniAppLogInstance = null
105
104
  this.checkStatusAndLoginPromise = null
106
105
  this.wxAppLoginInstance = WXAPP_LOGIN
107
106
  this.wxAppBizInstance = WXAPP_BIZ
108
107
  this.wxAppUserInfoInstance = WXAPP_USER_INFO
109
108
  this.wxAppReportManageInstance = WXAPP_REPORT_MANAGE
110
109
  this.wxAppReportGDTInstance = WXAPP_REPORT_GDT
111
110
  this.wxAppNavigatorInstance = WXAPP_NAVIGATOR
112
111
  this.wxAppParamsSignInstance = WXAPP_PARAMS_SIGN
113
112
  this.wxAppFingerReportInstance = WXAPP_FINGER_REPORT
114
113
  ? new WXAPP_FINGER_REPORT()
115
114
  : {}
116
115
  this.wxAppSubsGuider = WXAPP_SUBS_GUIDER
117
116
  }
118
117
  _getConfig(opt) {
119
118
  return Object.assign({}, DefaultConfig, opt)
120
119
  }
121
120
 
122
121
  taskTimeoutPromise(callBack, timeout = 2000) {
123
122
  return new Promise(resolve => {
124
123
  setTimeout(() => {
125
124
  const getCallBackRes = typeof callBack === 'function' && callBack()
126
125
  return resolve(getCallBackRes || false)
127
126
  }, timeout)
128
127
  })
129
128
  }
130
129
 
131
130
  updateBusinessDomainAndApi(domain, api) {
132
131
  console.log('=================>', 'updateBusinessDomainAndApi')
133
132
  }
134
133
 
135
134
  getFullScreenHeight(systemInfo) {
136
135
  const { screenHeight, statusBarHeight, isAndroid } = systemInfo
137
136
  let result = screenHeight
138
137
  if (statusBarHeight > 20 && isAndroid) {
139
138
  result = screenHeight + statusBarHeight
140
139
  }
141
140
  return result
142
141
  }
143
142
 
144
143
  getTabBarHeight(systemInfo) {
145
144
  const { statusBarHeight, isAndroid, isIOS } = systemInfo
146
145
  let result = 50
147
146
  if (statusBarHeight > 20) {
148
147
  if (isIOS) {
149
148
  result = 84
150
149
  } else if (isAndroid) {
151
150
  result = 53
152
151
  }
153
152
  }
154
153
  return result
155
154
  }
156
155
 
157
156
  getSystemInfo() {
158
157
  const info: UtilsInterFace.taroGetSystemInfoSyncRes = getSystemInfos() || {}
159
158
  const actualNavBarHeight =
160
159
  (info?.navBarHeight || 0) + (info?.navBarExtendHeight || 0)
161
160
  const headerHeight = actualNavBarHeight + (info?.statusBarHeight || 0)
162
161
  const fullScreenHeight = this.getFullScreenHeight(info)
163
162
  const tabBarHeight = this.getTabBarHeight(info)
164
163
  const safeContentHeight = fullScreenHeight - headerHeight
165
164
  this.info.sysInfo = {
166
165
  ...this.info.sysInfo,
167
166
  ...info,
168
167
  actualNavBarHeight,
169
168
  headerHeight,
170
169
  fullScreenHeight,
171
170
  tabBarHeight,
172
171
  safeContentHeight,
173
172
  }
174
173
  if (this.info.sysInfo['hostVersionName']) {
175
174
  this.info.sysInfo['hostAppVersion'] = Number(
176
175
  this.info.sysInfo['hostVersionName'].replace(/\./g, ''),
177
176
  )
178
177
  }
179
178
  this.info.sysInfo['wifiVideoAutoPlay'] = false
180
179
  this.getNetWorkType()
181
180
  console.log('获取系统信息', this.info.sysInfo)
182
181
  }
183
182
  async updateMPaasConfig() {}
184
183
 
185
184
  getNetWorkType() {
186
185
  Taro.getNetworkType().then(getRes => {
187
186
  getRes &&
188
187
  getRes.networkType &&
189
188
  (this.info.sysInfo['netWorkType'] = getRes.networkType)
190
189
  })
191
190
  }
192
191
 
193
192
  checkStatusAndLogin(options = {}) {
194
193
  this.checkStatusAndLoginPromise = new Promise((resolve, reject) => {
195
194
  console.log(
196
195
  '微信小程序登录状态及获取cookie状态的promise,之前登录状态',
197
196
  this.info.loginState,
198
197
  )
199
198
  this.toLogin(options)
200
199
  .then(res => {
201
200
  console.log('微信小程序登录状态结果,成功', res)
202
201
  this.info.loginState = true
203
202
  resolve(res)
204
203
  })
205
204
  .catch(err => {
206
205
  console.log('微信小程序登录异常状态结果', err)
207
206
  this.doLogin(options)
208
207
  .then(res2 => {
209
208
  console.log('微信小程序wxDoLogin强制登陆成功:', res2)
210
209
  this.info.loginState = true
211
210
  resolve(res2)
212
211
  })
213
212
  .catch(err2 => {
214
213
  console.log('微信小程序wxDoLogin强制登陆失败:', err2)
215
214
  this.checkStatusAndLoginPromise = null
216
215
  reject(err2)
217
216
  })
218
217
  })
219
218
  })
220
219
  return this.checkStatusAndLoginPromise
221
220
  }
222
221
 
223
222
  checkJdStatusAndLogin(
224
223
  options = {
225
224
  loginColor: {
226
225
  bzi: WXAPP_BIZ_SHOP_LIGHT_KEY,
227
226
  dpin: 0,
228
227
  },
229
228
  },
230
229
  ) {
231
230
  return this.checkStatusAndLogin(options)
232
231
  }
233
232
 
234
233
  toLogin(options = {}): Promise<any> {
235
234
  return this.wxAppLoginInstance
236
235
  .getLoginPromise({
237
236
  mode: 'silent',
238
237
  loginColor: {
239
238
  bzi: WXAPP_BIZ_KEY,
240
239
  dpin: 1,
241
240
  },
242
241
  ...options,
243
242
  })
244
243
  .then(res => {
245
244
  console.log('微信app登录返回信息,微信侧返回code为0表示成功', res)
246
245
  setTimeout(() => {
247
246
  console.log(
248
247
  '微信app登录返回成功后,后台会写入cookie,有延迟,这里延迟500ms去获取最新cookie',
249
248
  )
250
249
  this.getLoginCookie(`${Date.now()}`)
251
250
  }, 500)
252
251
  })
253
252
  .catch(err => {
254
253
  console.log('微信app登录异常返回信息,也获取cookie', err)
255
254
  this.getLoginCookie(`${Date.now()}`)
256
255
  })
257
256
  }
258
257
 
259
258
  doLogin(options = {}) {
260
259
  const getParams = {
261
260
  loginColor: {
262
261
  bzi: WXAPP_BIZ_KEY,
263
262
  dpin: 1,
264
263
  },
265
264
  ...options,
266
265
  }
267
266
  if (isPublishToWxapp) {
268
267
  getParams[
269
268
  'returnUrl'
270
269
  ] = `/pages/shopx/pages/index/index?${objectToUrlEncode({
271
270
  ...this.info.originQueryInfo,
272
271
  loadShopxType: 'redirect',
273
272
  })}`
274
273
  }
275
274
  return this.wxAppLoginInstance.doLogin(getParams).then(res => {
276
275
  console.log('微信小程序强制登录返回信息,微信侧返回code为0表示成功', res)
277
276
  setTimeout(() => {
278
277
  console.log(
279
278
  '微信强制登录后,后台会写入cookie,有延迟,这里延迟500ms去获取最新cookie',
280
279
  )
281
280
  this.getLoginCookie(`${Date.now()}`)
282
281
  }, 500)
283
282
  return res
284
283
  })
285
284
  }
286
285
 
287
286
  doLoginForJdPin(options = {}) {
288
287
  return this.doLogin({
289
288
  loginColor: {
290
289
  biz: WXAPP_BIZ_SHOP_LIGHT_KEY,
291
290
  dpin: 0,
292
291
  },
293
292
  ...options,
294
293
  })
295
294
  }
296
295
 
297
296
  getLoginCookie(updateKey = 'wxapp') {
298
297
  return new Promise(resolve => {
299
298
  console.log('开始获取更新wxapp中的cookie信息', updateKey)
300
299
  if (
301
300
  this.config.wqCookie &&
302
301
  this.config.wqCookieStr &&
303
302
  this.config.getWqCookieKey === updateKey
304
303
  ) {
305
304
  console.log('已有存储wxapp中的cookie信息,直接返回', this.config)
306
305
  resolve({
307
306
  wqCookie: this.config.wqCookie,
308
307
  wqCookieStr: this.config.wqCookieStr,
309
308
  })
310
309
  } else {
311
310
  if (isPublishToWxapp) {
312
311
  const getWxappCookieObj = getTaroStorageKeyValue('cookies') || null
313
312
  if (getWxappCookieObj) {
314
313
  const getCookieObj = getWxappCookieObj['_data']
315
314
  const { wqCookie, wqCookieStr } = getWxAppCookieStr(getCookieObj)
316
315
  const {
317
316
  pin = '',
318
317
  visitkey = '-1',
319
318
  wq_unionid = '',
320
319
  wxapp_openid = '',
321
320
  } = wqCookie
322
321
  this.info.loginState = true
323
322
  this.info.userInfo.wqCookie = wqCookieStr
324
323
  this.info.userInfo.wqVisitkey = visitkey
325
324
  console.log('获取用户完整cookie信息', getCookieObj)
326
325
  const getUserAddress = this.wxAppUserInfoInstance.getAddress()
327
326
  console.log('获取微信用户地址信息', getUserAddress)
328
327
  if (getUserAddress) {
329
328
  this.info.pageInfo.address = getUserAddress?.areaId
330
329
  this.info.pageInfo.addressCommaStr = this.info.pageInfo.address
331
330
  ? this.info.pageInfo.address.replace(/_/g, ',')
332
331
  : ''
333
332
  this.info.pageInfo.un_area = this.info.pageInfo.address
334
333
  Taro.eventCenter.trigger(
335
334
  TaroEventType.USER_AREA_UPDATE,
336
335
  this.info.pageInfo.address,
337
336
  )
338
337
  }
339
338
  if (this.miniAppLogInstance) {
340
339
  this.miniAppLogInstance.set({
341
340
  account: pin,
342
341
  unionid: wq_unionid,
343
342
  openid: wxapp_openid,
344
343
  })
345
344
  }
346
345
  this.config.wqCookie = wqCookie
347
346
  this.config.wqCookieStr = wqCookieStr
348
347
  this.config.getWqCookieKey = updateKey
349
348
  console.log('解析wxapp中的cookie信息成功,返回后存储', this.config)
350
349
  resolve({
351
350
  wqCookie,
352
351
  wqCookieStr,
353
352
  })
354
353
  } else {
355
354
  console.log(
356
355
  '解析wxapp中的cookie信息异常,返回异常结果',
357
356
  this.config,
358
357
  )
359
358
  resolve({
360
359
  wqCookie: false,
361
360
  wqCookieStr: false,
362
361
  })
363
362
  }
364
363
  } else {
365
364
  resolve({
366
365
  wqCookie: false,
367
366
  wqCookieStr: false,
368
367
  })
369
368
  }
370
369
  }
371
370
  })
372
371
  }
373
372
 
374
373
 
375
374
  checkLoginStatus() {
376
375
  return this.getLoginCookie()
377
376
  }
378
377
 
379
378
  getAddressCachePromise = () => {
380
379
  return Promise.reject('该方法只在APP内适用')
381
380
  }
382
381
 
383
382
  updatePageAndLogInfo(updateQuery = {}) {
384
383
  const createUpdateQueryInfo: {
385
384
  query: {
386
385
  shopId?: string | number
387
386
  venderId?: string | number
388
387
  }
389
388
  updateShopInfoState: boolean
390
389
  } = Object.assign(
391
390
  {},
392
391
  {
393
392
  query: {},
394
393
  updateShopInfoState: false,
395
394
  },
396
395
  updateQuery,
397
396
  )
398
397
  console.log(
399
398
  '获取当前下发的店铺查询参数',
400
399
  updateQuery,
401
400
  '获取之前保存的shopInfo店铺查询参数',
402
401
  this.info?.shopInfo,
403
402
  )
404
403
  const { query, updateShopInfoState } = createUpdateQueryInfo
405
404
  const { shopId, venderId } = query
406
405
  if (updateShopInfoState) {
407
406
  this.info.queryInfo = {
408
407
  ...this.info.queryInfo,
409
408
  ...query,
410
409
  }
411
410
  if (shopId && venderId) {
412
411
  this.info.shopInfo = {
413
412
  shopId: `${shopId}`,
414
413
  venderId: `${venderId}`,
415
414
  }
416
415
  }
417
416
  } else {
418
417
  this.info.queryInfo = {
419
418
  ...query,
420
419
  }
421
420
  this.info.originQueryInfo = {
422
421
  ...query,
423
422
  }
424
423
  if (
425
424
  this.info.shopInfo?.shopId &&
426
425
  this.info.shopInfo?.venderId &&
427
426
  (this.info.shopInfo.shopId == shopId ||
428
427
  this.info.shopInfo.venderId == venderId)
429
428
  ) {
430
429
  this.info.queryInfo.shopId = this.info.shopInfo.shopId
431
430
  this.info.queryInfo.venderId = this.info.shopInfo.venderId
432
431
  console.log(
433
432
  '当前存储的店铺shopId和venderId与下发的店铺信息shopId或者venderId为同一个,补充shopId或者venderId查询参数',
434
433
  this.info.queryInfo,
435
434
  )
436
435
  }
437
436
  }
438
437
  this.info.queryInfo['shopId'] &&
439
438
  (this.info.queryInfo['shopId'] = `${this.info.queryInfo['shopId']}`)
440
439
  this.info.queryInfo['venderId'] &&
441
440
  (this.info.queryInfo['venderId'] = `${this.info.queryInfo['venderId']}`)
442
441
  console.log(
443
442
  'weapp===获取店铺下发查询参数\n',
444
443
  query,
445
444
  '\n获取店铺最后查询参数\n',
446
445
  this.info.queryInfo,
447
446
  '\n是否为更新店铺状态\n',
448
447
  updateShopInfoState,
449
448
  )
450
449
  }
451
450
 
452
451
  getDynamicConfig(key: string) {
453
452
  console.warn(
454
453
  '调用微信小程序的 getDynamicConfig(),注意,此方法还未实现!',
455
454
  )
456
455
  return null
457
456
  }
457
+ import Taro from "@tarojs/taro";
458
458
  WXAPP_LOGIN,
459
459
  WXAPP_BIZ,
460
460
  WXAPP_USER_INFO,
461
461
  WXAPP_NAVIGATOR,
462
462
  WXAPP_REPORT_GDT,
463
463
  WXAPP_PARAMS_SIGN,
464
464
  WXAPP_FINGER_REPORT,
465
465
  WXAPP_REPORT_MANAGE,
466
466
  WXAPP_SUBS_GUIDER,
467
467
  BUSINESS_TYPE,
468
468
  SHOP_MENU_ID_TYPE,
469
469
  SHOP_MENU_ID_NAME,
470
470
  SECTION_HOME_TAB_NAME_TYPE,
471
471
  SECTION_HOME_TAB_TYPE,
472
472
  TaroEventType,
473
473
  WX_BUSINESS_TYPE,
474
474
  WXAPP_BIZ_KEY,
475
475
  WXAPP_BIZ_SHOP_LIGHT_KEY,
476
476
  getSystemInfos,
477
477
  getTaroStorageKeyValue,
478
478
  getWxAppCookieStr,
479
479
  objectToUrlEncode,
480
480
  abTestLabels: {},
481
481
  loginState: jdUserLoginState,
482
482
  cookiesStr: "",
483
483
  userInfo: userPinKey,
484
484
  pageInfo: {
485
485
  wxBusinessType: WX_BUSINESS_TYPE.SHOP,
486
486
  address: "",
487
487
  addressCommaStr: "",
488
488
  un_area: "",
489
489
  vapptype: "1",
490
490
  pageType: "home",
491
491
  dataType: BUSINESS_TYPE.ONLINE,
492
492
  floorExposureInfo: {},
493
493
  floorVideInfo: {},
494
494
  productVideInfo: {},
495
495
  tabsLoadAllDataInfo: {
496
496
  [SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_WELL_CHOSEN]]:
497
497
  false,
498
498
  [SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.CLASSIFY]]: true,
499
499
  },
500
500
  updateShopInfosAllState: false,
501
501
  isVipShop: false,
502
502
  isJdShowNativeImmersivePlayer: false,
503
503
  ...shopConfig,
504
504
  pageScrollTop: 0,
505
505
  pageIdxHeightInfo: {
506
506
  list: [],
507
507
  },
508
508
  shopNavBarHeight: 0,
509
509
  },
510
510
  defaultQueryLogInfo: {
511
511
  sourceType: "JDshop",
512
512
  sourceValue: "",
513
513
  moduleId: "none",
514
514
  entrance: "none",
515
515
  },
516
516
  originQueryInfo: {},
517
517
  sysInfo: {
518
518
  windowWidth: 0,
519
519
  windowHeight: 0,
520
520
  netWorkType: "4g",
521
521
  jdBottomBarHeight: 0,
522
522
  jdNativeHeaderHeight: 0,
523
523
  },
524
524
  queryInfo: {},
525
525
  shopInfo: {},
526
526
  openAppData: {},
527
527
  public info: CommonInterFace.BaseConfigInfo;
528
528
  public config: {
529
529
  [key: string]: any;
530
530
  };
531
531
  public lazyContainer: CommonInterFace.lazyContainer;
532
532
  public rootEleNode: HTMLElement | null;
533
533
  public miniApplogUtil: CommonInterFace.MiniApplogUtil;
534
534
  public miniAppLogInstance: CommonInterFace.MiniAppLog | null;
535
535
  public checkStatusAndLoginPromise: object | null;
536
536
  public wxAppLoginInstance: CommonInterFace.WxAppLogin;
537
537
  public wxAppBizInstance: CommonInterFace.WxAppUserInfo;
538
538
  public wxAppUserInfoInstance: CommonInterFace.WxAppUserInfo;
539
539
  public wxAppReportManageInstance: CommonInterFace.wxAppReportManage;
540
540
  public wxAppReportGDTInstance: CommonInterFace.WxAppReportGDT;
541
541
  public wxAppNavigatorInstance: CommonInterFace.WxAppNavigator;
542
542
  public wxAppParamsSignInstance: CommonInterFace.wxAppParamsSign;
543
543
  public wxAppFingerReportInstance: CommonInterFace.wxAppParamsSign;
544
544
  public wxAppSubsGuider: CommonInterFace.wxAppParamsSign;
545
545
  public loadJsSdkList: Array<any>
546
546
  public loadJsSdkListCachePromise: any
547
547
  constructor(opt) {
548
548
  this.info = this._getConfig(opt);
549
549
  this.config = {};
550
550
  this.lazyContainer = {
551
551
  [SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_WELL_CHOSEN]]: {
552
552
  appLazyContainerList: [],
553
553
  appLazyFinishContainerList: [],
554
554
  },
555
555
  [SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_PROMOTION]]: {
556
556
  appLazyContainerList: [],
557
557
  appLazyFinishContainerList: [],
558
558
  },
559
559
  };
560
560
  this.loadJsSdkList = []
561
561
  this.loadJsSdkListCachePromise = {}
562
562
  this.rootEleNode = null;
563
563
  this.miniApplogUtil = MiniAppLogUtil;
564
564
  this.miniAppLogInstance = null;
565
565
  this.checkStatusAndLoginPromise = null;
566
566
  this.wxAppLoginInstance = WXAPP_LOGIN;
567
567
  this.wxAppBizInstance = WXAPP_BIZ;
568
568
  this.wxAppUserInfoInstance = WXAPP_USER_INFO;
569
569
  this.wxAppReportManageInstance = WXAPP_REPORT_MANAGE;
570
570
  this.wxAppReportGDTInstance = WXAPP_REPORT_GDT;
571
571
  this.wxAppNavigatorInstance = WXAPP_NAVIGATOR;
572
572
  this.wxAppParamsSignInstance = WXAPP_PARAMS_SIGN;
573
573
  this.wxAppFingerReportInstance = WXAPP_FINGER_REPORT
574
574
  ? new WXAPP_FINGER_REPORT()
575
575
  : {};
576
576
  this.wxAppSubsGuider = WXAPP_SUBS_GUIDER;
577
577
  }
578
578
  _getConfig(opt) {
579
579
  return Object.assign({}, DefaultConfig, opt);
580
580
  }
581
581
 
582
582
  taskTimeoutPromise(callBack, timeout = 2000) {
583
583
  return new Promise((resolve) => {
584
584
  setTimeout(() => {
585
585
  const getCallBackRes = typeof callBack === "function" && callBack();
586
586
  return resolve(getCallBackRes || false);
587
587
  }, timeout);
588
588
  });
589
589
  }
590
590
 
591
591
  updateBusinessDomainAndApi(domain, api) {
592
592
  console.log("=================>", "updateBusinessDomainAndApi");
593
593
  }
594
594
 
595
595
  getFullScreenHeight(systemInfo) {
596
596
  const { screenHeight, statusBarHeight, isAndroid } = systemInfo;
597
597
  let result = screenHeight;
598
598
  if (statusBarHeight > 20 && isAndroid) {
599
599
  result = screenHeight + statusBarHeight;
600
600
  }
601
601
  return result;
602
602
  }
603
603
 
604
604
  getTabBarHeight(systemInfo) {
605
605
  const { statusBarHeight, isAndroid, isIOS } = systemInfo;
606
606
  let result = 50;
607
607
  if (statusBarHeight > 20) {
608
608
  if (isIOS) {
609
609
  result = 84;
610
610
  } else if (isAndroid) {
611
611
  result = 53;
612
612
  }
613
613
  }
614
614
  return result;
615
615
  }
616
616
 
617
617
  getSystemInfo() {
618
618
  const info: UtilsInterFace.taroGetSystemInfoSyncRes =
619
619
  getSystemInfos() || {};
620
620
  const actualNavBarHeight =
621
621
  (info?.navBarHeight || 0) + (info?.navBarExtendHeight || 0);
622
622
  const headerHeight = actualNavBarHeight + (info?.statusBarHeight || 0);
623
623
  const fullScreenHeight = this.getFullScreenHeight(info);
624
624
  const tabBarHeight = this.getTabBarHeight(info);
625
625
  const safeContentHeight = fullScreenHeight - headerHeight;
626
626
  this.info.sysInfo = {
627
627
  ...this.info.sysInfo,
628
628
  ...info,
629
629
  actualNavBarHeight,
630
630
  headerHeight,
631
631
  fullScreenHeight,
632
632
  tabBarHeight,
633
633
  safeContentHeight,
634
634
  };
635
635
  if (this.info.sysInfo["hostVersionName"]) {
636
636
  this.info.sysInfo["hostAppVersion"] = Number(
637
637
  this.info.sysInfo["hostVersionName"].replace(/\./g, "")
638
638
  );
639
639
  }
640
640
  this.info.sysInfo["wifiVideoAutoPlay"] = false;
641
641
  this.getNetWorkType();
642
642
  console.log("获取系统信息", this.info.sysInfo);
643
643
  }
644
644
  async updateMPaasConfig() {}
645
645
 
646
646
  getNetWorkType() {
647
647
  Taro.getNetworkType().then((getRes) => {
648
648
  getRes &&
649
649
  getRes.networkType &&
650
650
  (this.info.sysInfo["netWorkType"] = getRes.networkType);
651
651
  });
652
652
  }
653
653
  getAPPUseStraightCorner () {
654
654
  return Promise.resolve(false)
655
655
  }
656
656
 
657
657
  checkStatusAndLogin(options = {}) {
658
658
  this.checkStatusAndLoginPromise = new Promise((resolve, reject) => {
659
659
  console.log(
660
660
  "微信小程序登录状态及获取cookie状态的promise,之前登录状态",
661
661
  this.info.loginState
662
662
  );
663
663
  this.toLogin(options)
664
664
  .then((res) => {
665
665
  console.log("微信小程序登录状态结果,成功", res);
666
666
  this.info.loginState = true;
667
667
  resolve(res);
668
668
  })
669
669
  .catch((err) => {
670
670
  console.log("微信小程序登录异常状态结果", err);
671
671
  this.doLogin(options)
672
672
  .then((res2) => {
673
673
  console.log("微信小程序wxDoLogin强制登陆成功:", res2);
674
674
  this.info.loginState = true;
675
675
  resolve(res2);
676
676
  })
677
677
  .catch((err2) => {
678
678
  console.log("微信小程序wxDoLogin强制登陆失败:", err2);
679
679
  this.checkStatusAndLoginPromise = null;
680
680
  reject(err2);
681
681
  });
682
682
  });
683
683
  });
684
684
  return this.checkStatusAndLoginPromise;
685
685
  }
686
686
 
687
687
  checkJdStatusAndLogin(
688
688
  options = {
689
689
  loginColor: {
690
690
  biz: WXAPP_BIZ_SHOP_LIGHT_KEY,
691
691
  dpin: 0,
692
692
  },
693
693
  }
694
694
  ) {
695
695
  return this.checkStatusAndLogin(options);
696
696
  }
697
697
 
698
698
  toLogin(options = {}): Promise<any> {
699
699
  return this.wxAppLoginInstance
700
700
  .getLoginPromise({
701
701
  mode: "common",
702
702
  loginColor: {
703
703
  biz: WXAPP_BIZ_KEY,
704
704
  dpin: 1,
705
705
  },
706
706
  ...options,
707
707
  })
708
708
  .then((res) => {
709
709
  console.log("微信app登录返回信息,微信侧返回code为0表示成功", res);
710
710
  setTimeout(() => {
711
711
  console.log(
712
712
  "微信app登录返回成功后,后台会写入cookie,有延迟,这里延迟500ms去获取最新cookie"
713
713
  );
714
714
  this.getLoginCookie(`${Date.now()}`);
715
715
  }, 500);
716
716
  })
717
717
  .catch((err) => {
718
718
  console.log("微信app登录异常返回信息,也获取cookie", err);
719
719
  this.getLoginCookie(`${Date.now()}`);
720
720
  });
721
721
  }
722
722
 
723
723
  doLogin(options = {}) {
724
724
  const getParams = {
725
725
  loginColor: {
726
726
  biz: WXAPP_BIZ_KEY,
727
727
  dpin: 1,
728
728
  },
729
729
  ...options,
730
730
  };
731
731
  if (isPublishToWxapp) {
732
732
  getParams[
733
733
  "returnUrl"
734
734
  ] = `/pages/shopx/pages/index/index?${objectToUrlEncode({
735
735
  ...this.info.originQueryInfo,
736
736
  loadShopxType: "redirect",
737
737
  })}`;
738
738
  }
739
739
  return this.wxAppLoginInstance.doLogin(getParams).then((res) => {
740
740
  console.log("微信小程序强制登录返回信息,微信侧返回code为0表示成功", res);
741
741
  setTimeout(() => {
742
742
  console.log(
743
743
  "微信强制登录后,后台会写入cookie,有延迟,这里延迟500ms去获取最新cookie"
744
744
  );
745
745
  this.getLoginCookie(`${Date.now()}`);
746
746
  }, 500);
747
747
  return res;
748
748
  });
749
749
  }
750
750
 
751
751
  doLoginForJdPin(options = {}) {
752
752
  return this.doLogin({
753
753
  loginColor: {
754
754
  biz: WXAPP_BIZ_SHOP_LIGHT_KEY,
755
755
  dpin: 0,
756
756
  },
757
757
  ...options,
758
758
  });
759
759
  }
760
760
 
761
761
  getLoginCookie(updateKey = "wxapp") {
762
762
  return new Promise((resolve) => {
763
763
  console.log("开始获取更新wxapp中的cookie信息", updateKey);
764
764
  if (
765
765
  this.config.wqCookie &&
766
766
  this.config.wqCookieStr &&
767
767
  this.config.getWqCookieKey === updateKey
768
768
  ) {
769
769
  console.log("已有存储wxapp中的cookie信息,直接返回", this.config);
770
770
  resolve({
771
771
  wqCookie: this.config.wqCookie,
772
772
  wqCookieStr: this.config.wqCookieStr,
773
773
  });
774
774
  } else {
775
775
  if (isPublishToWxapp) {
776
776
  const getWxappCookieObj = getTaroStorageKeyValue("cookies") || null;
777
777
  if (getWxappCookieObj) {
778
778
  const getCookieObj = getWxappCookieObj["_data"];
779
779
  const { wqCookie, wqCookieStr } = getWxAppCookieStr(getCookieObj);
780
780
  const {
781
781
  pin = "",
782
782
  visitkey = "-1",
783
783
  wq_unionid = "",
784
784
  wxapp_openid = "",
785
785
  } = wqCookie;
786
786
  this.info.loginState = true;
787
787
  this.info.userInfo.wqCookie = wqCookieStr;
788
788
  this.info.userInfo.wqVisitkey = visitkey;
789
789
  console.log("获取用户完整cookie信息", getCookieObj);
790
790
  const getUserAddress = this.wxAppUserInfoInstance.getAddress();
791
791
  console.log("获取微信用户地址信息", getUserAddress);
792
792
  if (getUserAddress) {
793
793
  this.info.pageInfo.address = getUserAddress?.areaId;
794
794
  this.info.pageInfo.addressCommaStr = this.info.pageInfo.address
795
795
  ? this.info.pageInfo.address.replace(/_/g, ",")
796
796
  : "";
797
797
  this.info.pageInfo.un_area = this.info.pageInfo.address;
798
798
  Taro.eventCenter.trigger(
799
799
  TaroEventType.USER_AREA_UPDATE,
800
800
  this.info.pageInfo.address
801
801
  );
802
802
  }
803
803
  if (this.miniAppLogInstance) {
804
804
  this.miniAppLogInstance.set({
805
805
  account: pin,
806
806
  unionid: wq_unionid,
807
807
  openid: wxapp_openid,
808
808
  });
809
809
  }
810
810
  this.config.wqCookie = wqCookie;
811
811
  this.config.wqCookieStr = wqCookieStr;
812
812
  this.config.getWqCookieKey = updateKey;
813
813
  console.log("解析wxapp中的cookie信息成功,返回后存储", this.config);
814
814
  resolve({
815
815
  wqCookie,
816
816
  wqCookieStr,
817
817
  });
818
818
  } else {
819
819
  console.log(
820
820
  "解析wxapp中的cookie信息异常,返回异常结果",
821
821
  this.config
822
822
  );
823
823
  resolve({
824
824
  wqCookie: false,
825
825
  wqCookieStr: false,
826
826
  });
827
827
  }
828
828
  } else {
829
829
  resolve({
830
830
  wqCookie: false,
831
831
  wqCookieStr: false,
832
832
  });
833
833
  }
834
834
  }
835
835
  });
836
836
  }
837
837
 
838
838
 
839
839
  checkLoginStatus() {
840
840
  return this.getLoginCookie();
841
841
  }
842
842
 
843
843
  getAddressCachePromise = () => {
844
844
  return Promise.reject("该方法只在APP内适用");
845
845
  };
846
846
 
847
847
  updatePageAndLogInfo(updateQuery = {}) {
848
848
  const createUpdateQueryInfo: {
849
849
  query: {
850
850
  shopId?: string | number;
851
851
  venderId?: string | number;
852
852
  };
853
853
  updateShopInfoState: boolean;
854
854
  } = Object.assign(
855
855
  {},
856
856
  {
857
857
  query: {},
858
858
  updateShopInfoState: false,
859
859
  },
860
860
  updateQuery
861
861
  );
862
862
  console.log(
863
863
  "获取当前下发的店铺查询参数",
864
864
  updateQuery,
865
865
  "获取之前保存的shopInfo店铺查询参数",
866
866
  this.info?.shopInfo
867
867
  );
868
868
  const { query, updateShopInfoState } = createUpdateQueryInfo;
869
869
  const { shopId, venderId } = query;
870
870
  if (updateShopInfoState) {
871
871
  this.info.queryInfo = {
872
872
  ...this.info.queryInfo,
873
873
  ...query,
874
874
  };
875
875
  if (shopId && venderId) {
876
876
  this.info.shopInfo = {
877
877
  shopId: `${shopId}`,
878
878
  venderId: `${venderId}`,
879
879
  };
880
880
  }
881
881
  } else {
882
882
  this.info.queryInfo = {
883
883
  ...query,
884
884
  };
885
885
  this.info.originQueryInfo = {
886
886
  ...query,
887
887
  };
888
888
  if (
889
889
  this.info.shopInfo?.shopId &&
890
890
  this.info.shopInfo?.venderId &&
891
891
  (this.info.shopInfo.shopId == shopId ||
892
892
  this.info.shopInfo.venderId == venderId)
893
893
  ) {
894
894
  this.info.queryInfo.shopId = this.info.shopInfo.shopId;
895
895
  this.info.queryInfo.venderId = this.info.shopInfo.venderId;
896
896
  console.log(
897
897
  "当前存储的店铺shopId和venderId与下发的店铺信息shopId或者venderId为同一个,补充shopId或者venderId查询参数",
898
898
  this.info.queryInfo
899
899
  );
900
900
  }
901
901
  }
902
902
  this.info.queryInfo["shopId"] &&
903
903
  (this.info.queryInfo["shopId"] = `${this.info.queryInfo["shopId"]}`);
904
904
  this.info.queryInfo["venderId"] &&
905
905
  (this.info.queryInfo["venderId"] = `${this.info.queryInfo["venderId"]}`);
906
906
  console.log(
907
907
  "weapp===获取店铺下发查询参数\n",
908
908
  query,
909
909
  "\n获取店铺最后查询参数\n",
910
910
  this.info.queryInfo,
911
911
  "\n是否为更新店铺状态\n",
912
912
  updateShopInfoState
913
913
  );
914
914
  }
915
915
 
916
916
  getDynamicConfig(key: string) {
917
917
  console.warn(
918
918
  "调用微信小程序的 getDynamicConfig(),注意,此方法还未实现!"
919
919
  );
920
920
  return null;
921
921
  }
922
922
  renderNextTickLoadSdk(){
923
923
  console.warn("暂未实现 index.weapp.ts")
924
924
  }
925
925
  loadOtherSdk(){
926
926
  console.warn('暂未实现 index.weapp.ts')
927
927
  }
928
928
  loadItemSdkPromise() {
929
929
  console.warn('暂未实现 index.weapp.ts')
930
930
  }