@conecli/cone-render 0.9.1-shop2.3 → 0.9.1-shop2.30

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 (113) hide show
  1. package/dist/api/index.ts +1 -1
  2. package/dist/assets/icon_blue_info.svg +1 -0
  3. package/dist/common/const.ts +1 -1
  4. package/dist/common/environmentType.ts +1 -0
  5. package/dist/common/index.h5.ts +1 -1
  6. package/dist/common/index.jd.ts +1 -1
  7. package/dist/common/index.ts +1 -1
  8. package/dist/common/index.weapp.ts +1 -1
  9. package/dist/common/jdplayerSdk.ts +1 -0
  10. package/dist/common/jssdk.ts +1 -0
  11. package/dist/common/pageType.ts +1 -0
  12. package/dist/common/sgmCustomCode.ts +1 -0
  13. package/dist/common/token/index.h5.ts +1 -1
  14. package/dist/common/token/token.jd.ts +1 -1
  15. package/dist/common/token/token.ts +1 -1
  16. package/dist/common/wxappApi.jd.ts +1 -0
  17. package/dist/components/ErrorBoundary.tsx +1 -1
  18. package/dist/components/base/CountDown/index.tsx +1 -1
  19. package/dist/components/base/CustomScrollView/index.jd.tsx +1 -0
  20. package/dist/components/base/CustomScrollView/index.module.scss +7 -0
  21. package/dist/components/base/CustomScrollView/index.tsx +1 -1
  22. package/dist/components/base/CustomVideo/common.ts +1 -0
  23. package/dist/components/base/CustomVideo/index.tsx +1 -1
  24. package/dist/components/base/Dialog/index.module.scss +5 -0
  25. package/dist/components/base/Dialog/index.tsx +1 -1
  26. package/dist/components/base/Exposure/index.h5.tsx +1 -1
  27. package/dist/components/base/ExposureSmart/index.h5.tsx +1 -1
  28. package/dist/components/base/ExposureSmart/index.tsx +1 -1
  29. package/dist/components/base/ExposureSmart/reporter.tsx +1 -1
  30. package/dist/components/base/InOrOutViewObserver/index.tsx +1 -1
  31. package/dist/components/base/InViewRender/index.tsx +1 -1
  32. package/dist/components/base/ItemViewExposureSmart/index.tsx +1 -1
  33. package/dist/components/base/LazyLayoutLoad/index.tsx +1 -1
  34. package/dist/components/base/LazyLoadImage/const.ts +1 -1
  35. package/dist/components/base/LazyLoadImage/index.h5.module.scss +23 -20
  36. package/dist/components/base/LazyLoadImage/index.h5.tsx +1 -1
  37. package/dist/components/base/MobileCommonHeader/index.module.scss +17 -0
  38. package/dist/components/base/MobileCommonHeader/index.tsx +1 -0
  39. package/dist/components/base/NetworkDataError/const.ts +1 -1
  40. package/dist/components/base/NetworkDataError/index.module.scss +7 -0
  41. package/dist/components/base/NetworkDataError/index.tsx +1 -1
  42. package/dist/components/base/Price/Base/index.tsx +1 -1
  43. package/dist/components/base/Price/Double/index.tsx +1 -1
  44. package/dist/components/base/Price/index.tsx +1 -1
  45. package/dist/components/debug/DebugLayout/index.module.scss +67 -0
  46. package/dist/components/debug/DebugLayout/index.tsx +1 -0
  47. package/dist/components/debug/DebugLayout/utils.ts +1 -0
  48. package/dist/components/decorate/DecorateFloorModule/index.module.scss +32 -2
  49. package/dist/components/decorate/DecorateFloorModule/index.tsx +1 -1
  50. package/dist/components/decorate/EmptyFloorModule/index.tsx +1 -1
  51. package/dist/components/decorate/PlaceHolder/index.tsx +1 -1
  52. package/dist/components/floorItem.jd.tsx +1 -1
  53. package/dist/components/floorItem.tsx +1 -1
  54. package/dist/components/floorItem.weapp.tsx +1 -1
  55. package/dist/components/isv/Floor/index.tsx +1 -1
  56. package/dist/components/remoteFloorItem.tsx +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/interface/utils.ts +1 -1
  62. package/dist/jumpEventReport/base.ts +1 -1
  63. package/dist/jumpEventReport/const.ts +1 -1
  64. package/dist/jumpEventReport/createReportFloorData.ts +1 -1
  65. package/dist/jumpEventReport/index.h5.ts +1 -1
  66. package/dist/jumpEventReport/index.jd.ts +1 -1
  67. package/dist/jumpEventReport/index.weapp.ts +1 -1
  68. package/dist/jumpEventReport/jdJumpJdApp.ts +1 -1
  69. package/dist/jumpEventReport/jumpUrlConfig/base.ts +1 -1
  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 -0
  77. package/dist/jumpEventReport/web.tjapp.ts +1 -0
  78. package/dist/jumpEventReport/web.tjm.ts +1 -0
  79. package/dist/jumpEventReport/web.wxapp.ts +1 -1
  80. package/dist/modules/ContainerFloorList/index.h5.module.scss +18 -1
  81. package/dist/modules/ContainerFloorList/index.h5.tsx +1 -1
  82. package/dist/modules/ContainerFloorList/index.tsx +1 -1
  83. package/dist/open/api/device.ts +1 -1
  84. package/dist/open/api/environment.ts +1 -1
  85. package/dist/open/api/index.ts +1 -1
  86. package/dist/open/api/jump copy.ts +1 -1
  87. package/dist/open/api/request.ts +1 -1
  88. package/dist/open/api/shopMember.ts +1 -1
  89. package/dist/open/api/track.ts +1 -1
  90. package/dist/open/api/util.ts +1 -1
  91. package/dist/open/components/index.ts +1 -1
  92. package/dist/sass/app.h5.scss +49 -3
  93. package/dist/sass/base.scss +57 -0
  94. package/dist/service/fetchGateway.ts +1 -1
  95. package/dist/service/http/colorSign.ts +1 -1
  96. package/dist/service/http/const.ts +1 -1
  97. package/dist/service/http/h5Http.ts +1 -0
  98. package/dist/service/http/index.h5.ts +1 -0
  99. package/dist/service/requestServer.h5.ts +1 -0
  100. package/dist/service/requestServer.ts +1 -1
  101. package/dist/utils/connectNativeJsBridge.ts +1 -1
  102. package/dist/utils/connectNativeJsBridge.weapp.ts +1 -1
  103. package/dist/utils/draExceptionAndProfile.ts +1 -1
  104. package/dist/utils/h5Utils.ts +1 -1
  105. package/dist/utils/index.h5.ts +1 -1
  106. package/dist/utils/index.ts +1 -1
  107. package/dist/utils/index.weapp.ts +1 -1
  108. package/dist/utils/jm-common.js +1 -1
  109. package/dist/utils/sgmCodeUtils.ts +1 -0
  110. package/dist/utils/taroRenderUtil.ts +1 -1
  111. package/dist/utils/utils.ts +1 -1
  112. package/package.json +1 -1
  113. package/dist/customHooks/useDocumentVisibilitychange.ts +0 -1
@@ -1 +1 @@
1
- import { JumpEventReport, JumpEventReportPromise } from '../../jumpEventReport'
2
1
  initOpenTriggerExposure: (type: string) => void
3
2
  logPageIdInfo: Object
4
3
  logPnameInfo: Object
5
4
  getFloorPointIndexClassName: (obj: object, index?: number, tip?: string) => string
6
5
  initOpenTriggerExposure: () => {},
7
6
  initOpenTriggerExposure,
8
7
  logPageIdInfo,
9
8
  logPnameInfo
10
9
  initReportBaseData: ReportContainerData.initReportBaseData.bind(ReportContainerData),
11
10
  updateSectionTabDataInfo: ReportContainerData.updateSectionTabDataInfo.bind(ReportContainerData),
12
11
  initOpenTriggerExposure: initOpenTriggerExposure.bind(JumpEventReport),
13
12
  logPnameInfo: logPnameInfo,
14
13
  logPageIdInfo: logPageIdInfo,
15
14
  getFloorPointIndexClassName: ReportContainerData.getFloorPointIndexClassName.bind(ReportContainerData)
15
+ import { JumpEventReport, JumpEventReportPromise } from '../../jumpEventReport'
16
16
  getCustomClickEventInfo: (obj: object, obj2: object, obj3: object, groupState?: boolean) => object
17
17
  getCustomExposureInfo: (obj: object, obj2: object, obj3: object, groupState?: boolean) => object
18
18
  initOpenTriggerExposure: (type: string) => void
19
19
  logPageIdInfo: Object
20
20
  logPnameInfo: Object
21
21
  getFloorPointIndexClassName: (obj: object, index?: number, tip?: string) => string
22
22
  getIsvClickEventInfo: (obj) => obj,
23
23
  getIsvExposureInfo: (obj) => obj,
24
24
  getCustomClickEventInfo: (obj) => obj,
25
25
  getCustomExposureInfo: (obj) => obj,
26
26
  initOpenTriggerExposure: () => {},
27
27
  logPageIdInfo: {},
28
28
  logPnameInfo: {},
29
29
  initOpenTriggerExposure,
30
30
  logPageIdInfo,
31
31
  logPnameInfo
32
32
  getCustomClickEventInfo: ReportContainerData.getCustomClickEventInfo.bind(ReportContainerData),
33
33
  getCustomExposureInfo: ReportContainerData.getCustomExposureInfo.bind(ReportContainerData),
34
34
  initReportBaseData: ReportContainerData.initReportBaseData.bind(ReportContainerData),
35
35
  updateSectionTabDataInfo: ReportContainerData.updateSectionTabDataInfo.bind(ReportContainerData),
36
36
  initOpenTriggerExposure: initOpenTriggerExposure.bind(JumpEventReport),
37
37
  logPnameInfo: logPnameInfo,
38
38
  logPageIdInfo: logPageIdInfo,
39
39
  getFloorPointIndexClassName: ReportContainerData.getFloorPointIndexClassName.bind(ReportContainerData)
@@ -1 +1 @@
1
- import {
2
1
  dateFormat,
3
2
  showSuccessToast,
4
3
  showFailToast,
5
4
  showNormalToast,
6
5
  isJdApp,
7
6
  isH5AndJdShopView,
8
7
  isH5,
9
8
  isH5AndJdShopViewH5Scroll
10
9
  openTaroEventDialog,
11
10
  closeTaroEventDialog,
12
11
  dateFormat,
13
12
  showSuccessToast,
14
13
  showFailToast,
15
14
  showNormalToast,
16
15
  openDialog: openTaroEventDialog,
17
16
  closeDialog: closeTaroEventDialog,
18
17
  isJdApp,
19
18
  isH5AndJdShopView,
20
19
  isH5,
21
20
  isH5AndJdShopViewH5Scroll
21
+ import {
22
22
  dateFormat,
23
23
  showSuccessToast,
24
24
  showFailToast,
25
25
  showNormalToast,
26
26
  isJdApp,
27
27
  isH5AndJdShopView,
28
28
  isH5,
29
29
  isH5AndJdShopViewH5Scroll,
30
30
  stopNativeScrollEvent,
31
31
  pxTransformFromData,
32
32
  remoteCustomReport
33
33
  openTaroEventDialog,
34
34
  closeTaroEventDialog,
35
35
  dateFormat,
36
36
  showSuccessToast,
37
37
  showFailToast,
38
38
  showNormalToast,
39
39
  openDialog: openTaroEventDialog,
40
40
  closeDialog: closeTaroEventDialog,
41
41
  isJdApp,
42
42
  isH5AndJdShopView,
43
43
  isH5,
44
44
  isH5AndJdShopViewH5Scroll,
45
45
  stopNativeScrollEvent,
46
46
  pxTransformFromData,
47
47
  remoteCustomReport,
@@ -1 +1 @@
1
- import CountDown from "../../components/base/CountDown";
2
1
  Exposure,
3
2
  ItemViewExposureSmart,
3
+ import CountDown from "../../components/base/CountDown";
4
4
  Exposure,
5
5
  ItemViewExposureSmart,
6
6
  MobileCommonHeader,
7
7
  NetworkDataError,
@@ -148,6 +148,11 @@ img {
148
148
  //transform: perspective(1px) translate3d(0, 0, 0);
149
149
  //-webkit-backface-visibility: hidden;
150
150
  //-webkit-transform-style: preserve-3d;
151
+ // 图片加载过慢,在可视化区域等可能导致线出现裂图,然后加载正常url,这里如果是没有src就隐藏
152
+ &[src=""],
153
+ &:not([src]){
154
+ opacity:0;
155
+ }
151
156
  }
152
157
 
153
158
  .clearFlow {
@@ -228,6 +233,11 @@ video {
228
233
  }
229
234
  }
230
235
 
236
+ // tarojs会在运行时动态给页面写入这个样式,但是动态写入可能导致在写入之前,有些依赖于 taro-view-core 块行为的逻辑出现异常,比如获取一个view的宽度,block情况下应该是有宽度的,但可能会出现获取到的宽度值是0。所以改成样式表里就直接定义好
237
+ taro-view-core {
238
+ display: block;
239
+ }
240
+
231
241
  taro-view-core,
232
242
  taro-image-core,
233
243
  taro-text-core,
@@ -295,19 +305,55 @@ taro-radio-core {
295
305
  .weui-check + .weui-icon-checked {
296
306
  vertical-align: middle;
297
307
  &:before {
308
+ content: "";
309
+ width: 32px;
310
+ height: 32px;
311
+ margin-left: 0;
298
312
  margin-top: -4px;
299
- font-size: 36px;
313
+ border: 2px solid #909090;
314
+ //color: #909090;
315
+ //background: url("https://img12.360buyimg.com/imagetools/jfs/t1/206105/34/32968/504/64d35614F8cedb83b/d5953c21e17d17ae.png") no-repeat 0 0 / cover;
316
+ border-radius: 50%;
317
+ box-sizing: border-box;
300
318
  vertical-align: middle;
301
319
  }
302
320
  }
303
321
  .weui-check:checked + .weui-icon-checked {
304
322
  &:before {
305
- color: #e93b3d;
323
+ content: "";
324
+ border: none;
325
+ background: url("https://img12.360buyimg.com/imagetools/jfs/t1/190964/36/36148/636/64d35614Fd3f012fd/28a6f01faddaedbb.png") no-repeat 0 0 / cover;
306
326
  }
307
327
  }
308
328
  }
309
329
  }
310
-
330
+ taro-checkbox-core{
331
+ .taro-checkbox_checked {
332
+ border: 2px solid #909090;
333
+ //background: url("https://img12.360buyimg.com/imagetools/jfs/t1/206105/34/32968/504/64d35614F8cedb83b/d5953c21e17d17ae.png") no-repeat 0 0 / cover;
334
+ border-radius: 50%;
335
+ box-sizing: border-box;
336
+ &:checked {
337
+ border: none;
338
+ background: url("https://img12.360buyimg.com/imagetools/jfs/t1/190964/36/36148/636/64d35614Fd3f012fd/28a6f01faddaedbb.png") no-repeat 0 0 / cover;
339
+ &:before {
340
+ content: none;
341
+ }
342
+ }
343
+ }
344
+ }
345
+ .weui-picker{
346
+ font-size: 30px;
347
+ .weui-picker__hd{
348
+ font-size: 32px;
349
+ }
350
+ .weui-picker__action{
351
+ color: #FA2C19;
352
+ &:first-child{
353
+ color: #1A1A1A;
354
+ }
355
+ }
356
+ }
311
357
 
312
358
  .taro__toast {
313
359
  transition: none !important;
@@ -31,6 +31,39 @@
31
31
  src: url('https://wq.360buyimg.com/data/ppms/others/JDZhengHei_01_Bold.ttf')
32
32
  format('truetype');
33
33
  }
34
+ @font-face {
35
+ font-family: 'JDZhengHeiV2-Bold';
36
+ src: url('https://jscss.360buyimg.com/static-common/font/JDZhengHeiV20_Bold.otf')
37
+ format('truetype');
38
+ font-weight: normal;
39
+ font-style: normal;
40
+ }
41
+
42
+ @font-face {
43
+ font-family: 'JDZhengHeiV2-Light';
44
+ //src: url(https://storage.360buyimg.com/jshopstorage/JDZhengHT-Light.ttf) format('truetype');
45
+ src: url('https://jscss.360buyimg.com/static-common/font/JDZhengHeiV20_Light.otf')
46
+ format('truetype');
47
+ font-weight: normal;
48
+ font-style: normal;
49
+ }
50
+
51
+ @font-face {
52
+ font-family: 'JDZhengHeiV2-Regular';
53
+ //src: url(https://storage.360buyimg.com/jshopstorage/JDZhengHT-Regular.ttf) format('truetype');
54
+ src: url('https://jscss.360buyimg.com/static-common/font/JDZhengHeiV20_Regular.otf ')
55
+ format('truetype');
56
+ font-weight: normal;
57
+ font-style: normal;
58
+ }
59
+
60
+ @font-face {
61
+ font-family: 'JDZhengHeiV2-Heavy';
62
+ src: url('https://jscss.360buyimg.com/static-common/font/JDZhengHeiV20_Heavy.otf')
63
+ format('truetype');
64
+ font-weight: normal;
65
+ font-style: normal;
66
+ }
34
67
 
35
68
  .font-jdzht {
36
69
  font-family: 'JDZhengHT-Regular';
@@ -47,7 +80,19 @@
47
80
  .font-jdzht-light {
48
81
  font-family: 'JDZhengHT-Light';
49
82
  }
83
+ .font-jdzht-v2 {
84
+ font-family: 'JDZhengHeiV2-Regular';
85
+ }
86
+ .font-jdzht-v2-bold {
87
+ font-family: 'JDZhengHeiV2-Bold';
88
+ }
89
+ .font-jdzht-v2-heavy {
90
+ font-family: 'JDZhengHeiV2-Heavy';
91
+ }
50
92
 
93
+ .font-jdzht-v2-light {
94
+ font-family: 'JDZhengHeiV2-Light';
95
+ }
51
96
 
52
97
  .border-box {
53
98
  box-sizing: border-box;
@@ -340,3 +385,15 @@
340
385
  border: none;
341
386
  }
342
387
  }
388
+ .slide-in-left {
389
+ animation: slide-in-left 1s forwards;
390
+ }
391
+
392
+ @keyframes slide-in-left {
393
+ 0% {
394
+ transform: translateX(0);
395
+ }
396
+ 100% {
397
+ transform: translateX(-270px);
398
+ }
399
+ }
@@ -1 +1 @@
1
- import { api } from '../api'
2
1
  clientVersion: '11.0.0',
3
2
  client: 'wh5',
4
3
  area: '1_72_2799_0',
5
4
  loginType: '2',
6
5
  uuid: UUID,
7
6
  functionId: string,
8
7
  body = {},
9
8
  options = {},
10
9
  requestOptions = {},
11
10
  const params = Object.assign(
12
11
  {},
13
12
  {
14
13
  t: Date.now(),
15
14
  functionId,
16
15
  appid: 'shop_m_jd_com',
17
16
  body: JSON.stringify(body),
18
17
  },
19
18
  clientParams,
20
19
  options,
21
20
  )
22
21
  console.warn(
23
22
  'fetchGateway url:' + api.apiFunc + ',functionId:' + params.functionId,
24
23
  )
25
24
  return http.post(api.apiFunc, params, requestOptions)
25
+ import { api } from '../api'
26
26
  clientVersion: '11.0.0',
27
27
  client: 'wh5',
28
28
  area: '1_72_2799_0',
29
29
  uuid: UUID,
30
30
  functionId: string,
31
31
  body = {},
32
32
  options = {},
33
33
  requestOptions = {},
34
34
  const params = Object.assign(
35
35
  {},
36
36
  {
37
37
  t: Date.now(),
38
38
  functionId,
39
39
  appid: 'shop_m_jd_com',
40
40
  body: JSON.stringify(body),
41
41
  },
42
42
  clientParams,
43
43
  options,
44
44
  )
45
45
  console.warn(
46
46
  'fetchGateway url:' + api.apiFunc + ',functionId:' + params.functionId,
47
47
  )
48
48
  return http.post(api.apiFunc, params, requestOptions)
@@ -1 +1 @@
1
- import { ServiceInterFace } from '../../interface'
2
1
  AppVerifyColorList,
3
2
  SHOP_VERIFY_CODE,
4
3
  PAGES_VERIFY_CODE,
5
4
  B2B_VERITY_CODE,
6
5
  PAGES_DOMAIN,
7
6
  B2BColorFunctionIdList,
8
7
  public fmInfo: {
9
8
  eid?: string
10
9
  fp?: string
11
10
  jsToken?: string
12
11
  sdkToken?: string
13
12
  }
14
13
  public api: ServiceInterFace.HttpApi
15
14
  public paramsSignInstance: any
16
15
  public paramsSignPagesInstance: any
17
16
  public paramsSignBmallInstance: any
18
17
  public isPageDomain: boolean
19
18
  constructor() {
20
19
  this.api = api
21
20
  this.isPageDomain = location?.hostname === PAGES_DOMAIN
22
21
  this.paramsSignInstance = undefined
23
22
  this.paramsSignPagesInstance = undefined
24
23
  this.paramsSignBmallInstance = undefined
25
24
  this.fmInfo = {}
26
25
  this._initSign()
27
26
  }
28
27
 
29
28
  _getMobileJsToken(): Promise<{
30
29
  ok: boolean
31
30
  data?: any
32
31
  error?: any
33
32
  }> {
34
33
  return new Promise((resolve, reject) => {
35
34
  try {
36
35
  if (window?.getJsToken) {
37
36
  window.getJsToken(function (res) {
38
37
  console.log('JS token 获取结果:', res)
39
38
  resolve({
40
39
  ok: true,
41
40
  data: res,
42
41
  })
43
42
  }, 600)
44
43
  } else {
45
44
  reject({
46
45
  ok: false,
47
46
  error: '没有识别到getJsToken全局方法',
48
47
  })
49
48
  }
50
49
  } catch (e) {
51
50
  console.log('获取指纹JS token 异常', e)
52
51
  reject({
53
52
  ok: false,
54
53
  error: e,
55
54
  })
56
55
  }
57
56
  })
58
57
  }
59
58
 
60
59
  async getFmInfo() {
61
60
  try {
62
61
  const { ok, data } = await this._getMobileJsToken()
63
62
  this.fmInfo = ok && data ? data : this.fmInfo
64
63
  return this.fmInfo
65
64
  } catch (e) {
66
65
  console.log('获取指纹信息异常', e)
67
66
  return this.fmInfo
68
67
  }
69
68
  }
70
69
 
71
70
  _initSign() {
72
71
  this.paramsSignInstance = window.PSign
73
72
  ? window.PSign
74
73
  : window.ParamsSign
75
74
  ? this._initParamsSignInstance(SHOP_VERIFY_CODE)
76
75
  : null
77
76
  this.paramsSignPagesInstance = window.ParamsSign
78
77
  ? this._initParamsSignInstance(PAGES_VERIFY_CODE)
79
78
  : null
80
79
  this.paramsSignBmallInstance = window.ParamsSign
81
80
  ? this._initParamsSignInstance(B2B_VERITY_CODE)
82
81
  : null
83
82
  }
84
83
 
85
84
  _initParamsSignInstance(appId) {
86
85
  return new window.ParamsSign({
87
86
  appId: appId,
88
87
  debug: false,
89
88
  preRequest: false,
90
89
  onSign: ({ code }) => {
91
90
  console.log('签名可用率监控', code)
92
91
  },
93
92
  onRequestTokenRemotely: ({ code, message }) => {
94
93
  console.log('算法接口可用率监控', code, message)
95
94
  },
96
95
  onRequestToken: ({ code, message }) => {
97
96
  console.log('token的可用率监控', code, message)
98
97
  },
99
98
  })
100
99
  }
101
100
 
102
101
  paramsSign(data) {
103
102
  try {
104
103
  console.log('获取加签参数', data, this.paramsSignInstance)
105
104
  if (!data || typeof data !== 'object' || !this.paramsSignInstance) {
106
105
  return Promise.resolve(data)
107
106
  } else {
108
107
  const param: any = {
109
108
  appid: data.appid,
110
109
  client: data.client,
111
110
  clientVersion: data.clientVersion,
112
111
  functionId: data.functionId,
113
112
  t: data.t,
114
113
  sign: data?.sign,
115
114
  jsonp: data?.jsonp,
116
115
  }
117
116
  data && data.body && (param.body = sha256(data.body).toString())
118
117
  console.log(
119
118
  '获取加签前的参数处理',
120
119
  param,
121
120
  '获取下发data',
122
121
  data,
123
122
  '获取加签实例',
124
123
  this.paramsSignInstance,
125
124
  this.paramsSignPagesInstance,
126
125
  )
127
126
  return this.isPageDomain &&
128
127
  this.paramsSignPagesInstance &&
129
128
  AppVerifyColorList.includes(param.functionId)
130
129
  ? this.paramsSignPagesInstance.sign(param)
131
130
  : this.paramsSignBmallInstance &&
132
131
  B2BColorFunctionIdList.includes(param.functionId)
133
132
  ? this.paramsSignBmallInstance.sign(param)
134
133
  : this.paramsSignInstance.sign(param)
135
134
  }
136
135
  } catch (e) {
137
136
  console.log('获取加签参数结果异常', e)
138
137
  return Promise.resolve(data)
139
138
  }
140
139
  }
140
+ import { ServiceInterFace } from '../../interface'
141
141
  AppVerifyColorList,
142
142
  SHOP_VERIFY_CODE,
143
143
  PAGES_VERIFY_CODE,
144
144
  B2B_VERITY_CODE,
145
145
  PAGES_DOMAIN,
146
146
  B2BColorFunctionIdList,
147
147
  public fmInfo: {
148
148
  eid?: string
149
149
  fp?: string
150
150
  jsToken?: string
151
151
  sdkToken?: string
152
152
  }
153
153
  public api: ServiceInterFace.HttpApi
154
154
  public paramsSignInstance: any
155
155
  public paramsSignPagesInstance: any
156
156
  public paramsSignBmallInstance: any
157
157
  public isPageDomain: boolean
158
158
  public initParamsSignInstance: any
159
159
  public initJsTokenInstance: any
160
160
  constructor() {
161
161
  this.api = api
162
162
  this.isPageDomain = location?.hostname === PAGES_DOMAIN
163
163
  this.paramsSignInstance = undefined
164
164
  this.paramsSignPagesInstance = undefined
165
165
  this.paramsSignBmallInstance = undefined
166
166
  this.initParamsSignInstance = undefined
167
167
  this.initJsTokenInstance = undefined
168
168
  this.fmInfo = {}
169
169
  }
170
170
 
171
171
  _loadSingleJs(jsFileName, successCallback?, failCallback?) {
172
172
  const jsInfo = global.loadJsSdkList.find(
173
173
  (item) => item?.fileName === jsFileName,
174
174
  )
175
175
  if (jsInfo) {
176
176
  global
177
177
  .loadItemSdkPromise(jsInfo)
178
178
  .then(() => {
179
179
  typeof successCallback === 'function' && successCallback()
180
180
  })
181
181
  .catch(() => {
182
182
  console.info('业务发起接口请求前置加载js异常' + jsInfo?.src)
183
183
  typeof failCallback === 'function' && failCallback()
184
184
  })
185
185
  } else {
186
186
  typeof failCallback === 'function' && failCallback()
187
187
  }
188
188
  }
189
189
 
190
190
  _getMobileJsToken(): Promise<{
191
191
  ok: boolean
192
192
  data?: any
193
193
  error?: any
194
194
  }> {
195
195
  return this._handleInitJsToken().then(() => {
196
196
  try {
197
197
  if (window?.getJsToken) {
198
198
  return new Promise((resolve) => {
199
199
  window.getJsToken(function (res) {
200
200
  console.log('JS token 获取结果', res)
201
201
  resolve({
202
202
  ok: true,
203
203
  data: res,
204
204
  })
205
205
  }, 600)
206
206
  })
207
207
  } else {
208
208
  console.log('没有识别到getJsToken全局方法')
209
209
  return Promise.resolve({
210
210
  ok: false,
211
211
  error: '没有识别到getJsToken全局方法',
212
212
  })
213
213
  }
214
214
  } catch (e) {
215
215
  console.log('获取指纹JS token 异常', e)
216
216
  return Promise.resolve({
217
217
  ok: false,
218
218
  error: e,
219
219
  })
220
220
  }
221
221
  })
222
222
  }
223
223
 
224
224
  async getFmInfo() {
225
225
  try {
226
226
  const { ok, data } = await this._getMobileJsToken()
227
227
  this.fmInfo = ok && data ? data : this.fmInfo
228
228
  return this.fmInfo
229
229
  } catch (e) {
230
230
  console.log('获取指纹信息异常', e)
231
231
  return this.fmInfo
232
232
  }
233
233
  }
234
234
 
235
235
  _initSign() {
236
236
  this.paramsSignInstance = window.PSign
237
237
  ? window.PSign
238
238
  : window.ParamsSign
239
239
  ? this._initParamsSignInstance(SHOP_VERIFY_CODE)
240
240
  : null
241
241
  this.paramsSignPagesInstance = window.ParamsSign
242
242
  ? this._initParamsSignInstance(PAGES_VERIFY_CODE)
243
243
  : null
244
244
  this.paramsSignBmallInstance = window.ParamsSign
245
245
  ? this._initParamsSignInstance(B2B_VERITY_CODE)
246
246
  : null
247
247
  }
248
248
 
249
249
  _initParamsSignInstance(appId) {
250
250
  return new window.ParamsSign({
251
251
  appId: appId,
252
252
  debug: false,
253
253
  preRequest: false,
254
254
  onSign: ({ code }) => {
255
255
  console.log('签名可用率监控', code)
256
256
  },
257
257
  onRequestTokenRemotely: ({ code, message }) => {
258
258
  console.log('算法接口可用率监控', code, message)
259
259
  },
260
260
  onRequestToken: ({ code, message }) => {
261
261
  console.log('token的可用率监控', code, message)
262
262
  },
263
263
  })
264
264
  }
265
265
 
266
266
  paramsSign(data) {
267
267
  try {
268
268
  return this._handleInitSign().then(() => {
269
269
  console.log('获取加签参数', data, this.paramsSignInstance)
270
270
  if (!data || typeof data !== 'object' || !this.paramsSignInstance) {
271
271
  return Promise.resolve(data)
272
272
  } else {
273
273
  const param: any = {
274
274
  appid: data.appid,
275
275
  client: data.client,
276
276
  clientVersion: data.clientVersion,
277
277
  functionId: data.functionId,
278
278
  t: data.t,
279
279
  sign: data?.sign,
280
280
  jsonp: data?.jsonp,
281
281
  }
282
282
  data && data.body && (param.body = sha256(data.body).toString())
283
283
  console.log(
284
284
  '获取加签前的参数处理',
285
285
  param,
286
286
  '获取下发data',
287
287
  data,
288
288
  '获取加签实例',
289
289
  this.paramsSignInstance,
290
290
  this.paramsSignPagesInstance,
291
291
  )
292
292
  return this.isPageDomain &&
293
293
  this.paramsSignPagesInstance &&
294
294
  AppVerifyColorList.includes(param.functionId)
295
295
  ? this.paramsSignPagesInstance.sign(param)
296
296
  : this.paramsSignBmallInstance &&
297
297
  B2BColorFunctionIdList.includes(param.functionId)
298
298
  ? this.paramsSignBmallInstance.sign(param)
299
299
  : this.paramsSignInstance.sign(param)
300
300
  }
301
301
  })
302
302
  } catch (e) {
303
303
  console.log('获取加签参数结果异常', e)
304
304
  return Promise.resolve(data)
305
305
  }
306
306
  }
307
307
 
308
308
  _handleInitSign() {
309
309
  if (!this.initParamsSignInstance) {
310
310
  this.initParamsSignInstance = new Promise((resolve) => {
311
311
  if (window?.ParamsSign) {
312
312
  this._initSign()
313
313
  resolve({
314
314
  ok: true,
315
315
  msg: '加固js已加载',
316
316
  })
317
317
  } else if (window?.PAGE_DATA?.asyncLoadSecurityJs) {
318
318
  this._loadSingleJs(
319
319
  'securityJs',
320
320
  () => {
321
321
  this._initSign()
322
322
  resolve({
323
323
  ok: true,
324
324
  msg: '异步请求加固js成功加载',
325
325
  })
326
326
  },
327
327
  () => {
328
328
  resolve({
329
329
  ok: true,
330
330
  msg: '加固js加载异常',
331
331
  })
332
332
  },
333
333
  )
334
334
  } else {
335
335
  resolve({
336
336
  ok: true,
337
337
  msg: '加固js开关配置为false不加载',
338
338
  })
339
339
  }
340
340
  })
341
341
  }
342
342
  return this.initParamsSignInstance
343
343
  }
344
344
 
345
345
  _handleInitJsToken() {
346
346
  if (!this.initJsTokenInstance) {
347
347
  this.initJsTokenInstance = new Promise((resolve) => {
348
348
  if (window?.getJsToken) {
349
349
  resolve({
350
350
  ok: true,
351
351
  msg: '指纹js已加载',
352
352
  })
353
353
  } else if (window?.PAGE_DATA?.asyncLoadMtkJs) {
354
354
  this._loadSingleJs(
355
355
  'mtkJs',
356
356
  () => {
357
357
  resolve({
358
358
  ok: true,
359
359
  msg: '异步请求指纹js成功加载',
360
360
  })
361
361
  },
362
362
  () => {
363
363
  resolve({
364
364
  ok: true,
365
365
  msg: '指纹js加载异常',
366
366
  })
367
367
  },
368
368
  )
369
369
  } else {
370
370
  resolve({
371
371
  ok: true,
372
372
  msg: '指纹js开关配置为false不加载',
373
373
  })
374
374
  }
375
375
  })
376
376
  }
377
377
  return this.initJsTokenInstance
378
378
  }