react_hsbc_teller 1.8.3 → 1.8.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.
@@ -26,6 +26,15 @@ import Spin from "antd/lib/spin";
26
26
  import 'antd/lib/spin/style'
27
27
  import Select from "antd/lib/select";
28
28
  import 'antd/lib/select/style'
29
+
30
+ import Radio from "antd/lib/radio";
31
+ import 'antd/lib/radio/style'
32
+
33
+
34
+ import Space from "antd/lib/space";
35
+ import 'antd/lib/space/style'
36
+
37
+
29
38
  import styled from 'styled-components';
30
39
  import { Button } from '../../../node_modules/antd/lib/index';
31
40
  import SignMy from '../sign/signMy.jsx'
@@ -302,26 +311,27 @@ class Video extends Component {
302
311
  curryControl: 'pen', // 工具类型
303
312
  },
304
313
  zIndexNum: -1,
305
- selectSpan: 'pen'
314
+ selectSpan: 'pen',
315
+ isModalVisibleCustomer: false,
316
+ customerSelect: '',
317
+ documentType: '',
318
+ isCustomerSelect: true,
319
+ customerTitleName: '客户身份识别',
320
+ certificateType: 'identityCard',
321
+ customerName: '',
322
+ IDtypeFrontOrBack: '',
323
+ disabledIdCard: true,
324
+ isModalVisibleSFP: false,
325
+ StaffidSFP: '',
326
+ PasswordSFP: ''
306
327
  };
307
328
  // eslint-disable-next-line no-undef
308
329
  test_controller = '';
309
330
 
310
331
  saveLog=(val)=>{
311
332
  axios({
312
- method: 'post',
313
- baseURL: `http://${this.props.project}.${this.props.endpoint}/logstores/${this.props.logstore}/track`,
314
- headers: {
315
- 'x-log-apiversion': '0.6.0',
316
- 'x-log-bodyrawsize': '1234',
317
- },
318
- data: {
319
- "__logs__": [
320
- {
321
- "key": val + this.state.channelId
322
- }
323
- ]
324
- },
333
+ method: 'get',
334
+ baseURL: this.props.logUrl + '&message=' + encodeURIComponent(val) + '&react_hsbc_teller=1.8.6&logTime=' + Date.now() + '&mtoken=' + encodeURIComponent(this.state.rtoken) + '&roomId=' + encodeURIComponent(this.state.channelId) + '&sessionId=' + encodeURIComponent(this.state.sessionId) + '&appointmentID=' + this.props.businessNumber,
325
335
 
326
336
  }).then(res => {
327
337
 
@@ -368,7 +378,7 @@ class Video extends Component {
368
378
  if(this.state.imStatus && !this.state.imJoinRoom) {
369
379
  joinRoom((this.props.tellerAccount + '@' + JSON.parse(window.sessionStorage.getItem('sigData')).hostname), this.state.imRoomId)
370
380
  this.state.imJoinRoom =true
371
- this.saveLog('加入IM房间')
381
+ this.saveLog('Join im room')
372
382
  console.log('加入IM房间')
373
383
  }
374
384
  })
@@ -383,12 +393,13 @@ class Video extends Component {
383
393
  roomId: this.state.channelId
384
394
  }
385
395
  })
396
+ // this.getToken()
386
397
  // this.saveLog()
387
398
  } catch (err) {
388
399
  console.error(err);
389
400
 
390
401
  this.state.sessionType = false
391
- this.saveLog('创建房间---保存信息失败')
402
+ this.saveLog('Failed to save room information')
392
403
  if(err.status == 502 || err.status== 404) {
393
404
  this.roomCallBack(2, '连接服务器失败','SYS-02')
394
405
  } else {
@@ -407,6 +418,7 @@ class Video extends Component {
407
418
  let result = await API.getBase64Image({ fileName: data});
408
419
  console.log('getBase64Image',result)
409
420
  this.tabTitlesClick('customerScreen', 'delect')
421
+ this.saveLog('imgCallback success' + Mival.data.type)
410
422
  this.props.imgCallback({
411
423
  type: result.data.type + '',
412
424
  file: result.data.base64Image,
@@ -465,7 +477,7 @@ class Video extends Component {
465
477
  this.handleEdit()
466
478
  }
467
479
  } catch (err) {
468
- this.saveLog('签名失败')
480
+ this.saveLog('Failed to get signature')
469
481
  console.error(err);
470
482
  if(err.status == 502 || err.status== 404) {
471
483
  this.roomCallBack(2, '连接服务器失败','SYS-02')
@@ -834,14 +846,6 @@ class Video extends Component {
834
846
  name: this.state.videoOneName + (this.state.faceCustomerType == 1 ? '--人脸识别' :'--OCR'),
835
847
  tourist: false
836
848
  })
837
- if(this.state.videoOneName.indexOf("客户") == -1 && this.state.faceCustomerType == 2) {
838
- list.push({
839
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId1").innerText).feedId,
840
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId1").innerText).uid,
841
- name: this.state.videoOneName + '--查询客户',
842
- tourist: true
843
- })
844
- }
845
849
  }
846
850
  if (document.getElementById('video2').name && !this.state.isPIBIntranet[1].type) {
847
851
  console.log(this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId2").innerText))
@@ -852,14 +856,6 @@ class Video extends Component {
852
856
  name: this.state.videoTwoName + (this.state.faceCustomerType == 1 ? '--人脸识别' :'--OCR'),
853
857
  tourist: false
854
858
  })
855
- if(this.state.videoTwoName.indexOf("客户") == -1 && this.state.faceCustomerType == 2) {
856
- list.push({
857
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId2").innerText).feedId,
858
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId2").innerText).uid,
859
- name: this.state.videoTwoName + '--查询客户',
860
- tourist: true
861
- })
862
- }
863
859
  }
864
860
  if (document.getElementById('video3').name && !this.state.isPIBIntranet[2].type) {
865
861
  console.log(this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId3").innerText))
@@ -870,14 +866,6 @@ class Video extends Component {
870
866
  name: this.state.videoThreeName + (this.state.faceCustomerType == 1 ? '--人脸识别' :'--OCR'),
871
867
  tourist: false
872
868
  })
873
- if(this.state.videoThreeName.indexOf("客户") == -1 && this.state.faceCustomerType == 2) {
874
- list.push({
875
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId3").innerText).feedId,
876
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId3").innerText).uid,
877
- name: this.state.videoThreeName + '--查询客户',
878
- tourist: true
879
- })
880
- }
881
869
  }
882
870
  if (document.getElementById('video4').name && !this.state.isPIBIntranet[3].type) {
883
871
  console.log(this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId4").innerText))
@@ -888,14 +876,6 @@ class Video extends Component {
888
876
  name: this.state.videoFourName + (this.state.faceCustomerType == 1 ? '--人脸识别' :'--OCR'),
889
877
  tourist: false
890
878
  })
891
- if(this.state.videoFourName.indexOf("客户") == -1 && this.state.faceCustomerType == 2) {
892
- list.push({
893
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId4").innerText).feedId,
894
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId4").innerText).uid,
895
- name: this.state.videoFourName + '--查询客户',
896
- tourist: true
897
- })
898
- }
899
879
  }
900
880
  if (document.getElementById('video5').name && !this.state.isPIBIntranet[4].type) {
901
881
  console.log(this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId5").innerText))
@@ -906,14 +886,6 @@ class Video extends Component {
906
886
  name: this.state.videoFiveName + (this.state.faceCustomerType == 1 ? '--人脸识别' :'--OCR'),
907
887
  tourist: false
908
888
  })
909
- if(this.state.videoFiveName.indexOf("客户") == -1 && this.state.faceCustomerType == 2) {
910
- list.push({
911
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId5").innerText).feedId,
912
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId5").innerText).uid,
913
- name: this.state.videoFiveName + '--查询客户',
914
- tourist: true
915
- })
916
- }
917
889
  }
918
890
  if (document.getElementById('video6').name && !this.state.isPIBIntranet[5].type) {
919
891
  console.log(this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId6").innerText))
@@ -923,14 +895,6 @@ class Video extends Component {
923
895
  name: this.state.videoSixName + (this.state.faceCustomerType == 1 ? '--人脸识别' :'--OCR'),
924
896
  tourist: false
925
897
  })
926
- if(this.state.videoSixName.indexOf("客户") == -1 && this.state.faceCustomerType == 2) {
927
- list.push({
928
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId6").innerText).feedId,
929
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId6").innerText).uid,
930
- name: this.state.videoSixName + '--查询客户',
931
- tourist: true
932
- })
933
- }
934
898
  }
935
899
  if (document.getElementById('video7').name && !this.state.isPIBIntranet[6].type) {
936
900
  list.push({
@@ -939,14 +903,6 @@ class Video extends Component {
939
903
  name: this.state.videoSevenName + (this.state.faceCustomerType == 1 ? '--人脸识别' :'--OCR'),
940
904
  tourist: false
941
905
  })
942
- if(this.state.videoSevenName.indexOf("客户") == -1 && this.state.faceCustomerType == 2) {
943
- list.push({
944
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId7").innerText).feedId,
945
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId7").innerText).uid,
946
- name: this.state.videoSevenName + '--查询客户',
947
- tourist: true
948
- })
949
- }
950
906
  }
951
907
  if (document.getElementById('video8').name && !this.state.isPIBIntranet[7].type) {
952
908
  list.push({
@@ -955,14 +911,6 @@ class Video extends Component {
955
911
  name: this.state.videoEightName + (this.state.faceCustomerType == 1 ? '--人脸识别' :'--OCR'),
956
912
  tourist: false
957
913
  })
958
- if(this.state.videoEightName.indexOf("客户") == -1 && this.state.faceCustomerType == 2) {
959
- list.push({
960
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId8").innerText).feedId,
961
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId8").innerText).uid,
962
- name: this.state.videoEightName + '--查询客户',
963
- tourist: true
964
- })
965
- }
966
914
  }
967
915
  if (document.getElementById('video9').name && !this.state.isPIBIntranet[8].type) {
968
916
  list.push({
@@ -971,14 +919,6 @@ class Video extends Component {
971
919
  name: this.state.videoNineName + (this.state.faceCustomerType == 1 ? '--人脸识别' :'--OCR'),
972
920
  tourist: false
973
921
  })
974
- if(this.state.videoNineName.indexOf("客户") == -1 && this.state.faceCustomerType == 2) {
975
- list.push({
976
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId9").innerText).feedId,
977
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId9").innerText).uid,
978
- name: this.state.videoNineName + '--查询客户',
979
- tourist: true
980
- })
981
- }
982
922
  }
983
923
  if (document.getElementById('video10').name && !this.state.isPIBIntranet[9].type) {
984
924
  list.push({
@@ -987,14 +927,6 @@ class Video extends Component {
987
927
  name: this.state.videoTenName +(this.state.faceCustomerType == 1 ? '--人脸识别' :'--OCR'),
988
928
  tourist: false
989
929
  })
990
- if(this.state.videoTenName.indexOf("客户") == -1 && this.state.faceCustomerType == 2) {
991
- list.push({
992
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId10").innerText).feedId,
993
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId10").innerText).uid,
994
- name: this.state.videoTenName + '--查询客户',
995
- tourist: true
996
- })
997
- }
998
930
  }
999
931
  if (document.getElementById('video11').name && !this.state.isPIBIntranet[10].type) {
1000
932
  list.push({
@@ -1003,14 +935,6 @@ class Video extends Component {
1003
935
  name: this.state.videoElevenName + (this.state.faceCustomerType == 1 ? '--人脸识别' :'--OCR'),
1004
936
  tourist: false
1005
937
  })
1006
- if(this.state.videoElevenName.indexOf("客户") == -1 && this.state.faceCustomerType == 2) {
1007
- list.push({
1008
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId11").innerText).feedId,
1009
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId11").innerText).uid,
1010
- name: this.state.videoElevenName + '--查询客户',
1011
- tourist: true
1012
- })
1013
- }
1014
938
  }
1015
939
  if (document.getElementById('video12').name && !this.state.isPIBIntranet[11].type) {
1016
940
  list.push({
@@ -1019,19 +943,19 @@ class Video extends Component {
1019
943
  name: this.state.videoTwelveName + (this.state.faceCustomerType == 1 ? '--人脸识别' :'--OCR'),
1020
944
  tourist: false
1021
945
  })
1022
- if(this.state.videoTwelveName.indexOf("客户") == -1 && this.state.faceCustomerType == 2) {
1023
- list.push({
1024
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId12").innerText).feedId,
1025
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId12").innerText).uid,
1026
- name: this.state.videoTwelveName + '--查询客户',
1027
- tourist: true
1028
- })
1029
- }
1030
946
  }
947
+ console.log(list)
948
+ this.setState({
949
+ customerList: list
950
+ })
1031
951
  if (list.length > 0) {
1032
952
  if (val == 'ocr') {
1033
953
  this.setState({
1034
- clickedOcr: true
954
+ documentType: '',
955
+ isModalVisibleCustomer: true,
956
+ isCustomerSelect: true,
957
+ customerSelect: '',
958
+ customerTitleName: '客户身份识别'
1035
959
  })
1036
960
  } else if (val == 'facial') {
1037
961
  this.setState({
@@ -1041,9 +965,6 @@ class Video extends Component {
1041
965
  } else {
1042
966
  this.messageClick('当前暂无客户','error')
1043
967
  }
1044
- this.setState({
1045
- customerList: list
1046
- })
1047
968
  }
1048
969
  messageClick=(value,valueOne)=>{
1049
970
  console.log(value,valueOne)
@@ -1109,7 +1030,7 @@ class Video extends Component {
1109
1030
  }
1110
1031
  };
1111
1032
  endSessionValue = () => {
1112
- this.saveLog('主动退出会议')
1033
+ this.saveLog('RM actively exits the meeting')
1113
1034
  if(streamShare) {
1114
1035
  streamShare.getTracks().forEach(track => track.stop());
1115
1036
  streamShare=''
@@ -1442,7 +1363,7 @@ class Video extends Component {
1442
1363
  this.setState({
1443
1364
  loading: false,
1444
1365
  })
1445
- this.saveLog('失败的code:' + code)
1366
+ this.saveLog('aborted code:' + code)
1446
1367
  if (this.state.sessionId) {
1447
1368
  if(code == 'SYS-01' || code == 'SYS-02') {
1448
1369
  this.props.joinRoomCallback({
@@ -1511,9 +1432,11 @@ class Video extends Component {
1511
1432
  if (Mival.sessionId == this.state.sessionId) {
1512
1433
  if (Mival.type == 1) {
1513
1434
  // 开启录制
1435
+ this.saveLog('Start recording')
1514
1436
  this.enableServerRecording()
1515
1437
  } else if (Mival.type == 2) {
1516
1438
  // 关闭录制
1439
+ this.saveLog('stop recording')
1517
1440
  this.test_controller.StopRemoteRecord(this.state.recordId)
1518
1441
  }
1519
1442
  }
@@ -1683,6 +1606,7 @@ class Video extends Component {
1683
1606
  else if (Mival.typeId == 1220) {
1684
1607
  // 一炒多的图片 1214
1685
1608
  if (Mival.sessionId == this.state.sessionId) {
1609
+ this.saveLog('imgCallback success' + Mival.data.type)
1686
1610
  this.tabTitlesClick('customerScreen', 'delect')
1687
1611
  this.props.imgCallback({
1688
1612
  type: Mival.data.type + '',
@@ -1696,6 +1620,7 @@ class Video extends Component {
1696
1620
  // 签字回调 1213
1697
1621
  if (Mival.sessionId == this.state.sessionId) {
1698
1622
  this.tabTitlesClick('customerScreen', 'delect')
1623
+ this.saveLog('signatureCallback success')
1699
1624
  this.props.signatureCallback({
1700
1625
  errorType: 0
1701
1626
  })
@@ -1890,6 +1815,7 @@ class Video extends Component {
1890
1815
  }
1891
1816
  } else if (Mival.typeId == 121305) {
1892
1817
  if (Mival.sessionId == this.state.sessionId) {
1818
+ this.saveLog('signatureCallback fail')
1893
1819
  this.props.signatureCallback({
1894
1820
  errorType: -1
1895
1821
  })
@@ -1897,6 +1823,7 @@ class Video extends Component {
1897
1823
  } else if (Mival.typeId == 121405) {
1898
1824
  if (Mival.sessionId == this.state.sessionId) {
1899
1825
  console.log('imgCallback')
1826
+ this.saveLog('imgCallback fail')
1900
1827
  this.props.imgCallback({
1901
1828
  type: '',
1902
1829
  file: '',
@@ -1979,7 +1906,7 @@ class Video extends Component {
1979
1906
  console.log('im登录', msg)
1980
1907
  if(msg.status == 'error') {
1981
1908
  this.state.imStatus = false
1982
- this.saveLog('im建立连接失败')
1909
+ this.saveLog('Im connection establishment failed')
1983
1910
  this.roomCallBack(2, 'im建立连接失败',5)
1984
1911
  } else if (msg.status == 'success') {
1985
1912
  this.state.imStatus = true
@@ -1995,7 +1922,7 @@ class Video extends Component {
1995
1922
  this.timer && clearInterval(this.timer);
1996
1923
  this.state.imStatus = false
1997
1924
  console.log('IMOpenfireclose')
1998
- this.saveLog('账号重复登录')
1925
+ this.saveLog('Repeated login of account')
1999
1926
  this.roomCallBack(2, '账号重复登录',9)
2000
1927
 
2001
1928
  }
@@ -2021,9 +1948,6 @@ class Video extends Component {
2021
1948
  this.test_controller.OnGetDevicesSuccess = (devicesInfo) => {
2022
1949
  console.log('devicesInfo' + JSON.stringify(devicesInfo));
2023
1950
  const obj = [
2024
- // {actionid: '0133d06019b8fe9426818ae7573ccfc31c150e09138e7f5ccfda03d6e224ffd4', groupId: '9c0334ba5cba71b60acb3ec6669c3aac78371ec9d9e33d2e8af72a758d895d27', actionname: 'Integrated Camera (13d3:56fb)'},
2025
-
2026
- // {actionid: '4695c628677498d876074b941c16f6921d4e57534b50bfc2cb973da84e0e2622', groupId: '0d86c9467f096440ed74449192be5fafea59ac469866975f30b61fe964e2a80e', actionname: 'C2D Camera (0416:5035)'}
2027
1951
  ];
2028
1952
  const obj1 = [];
2029
1953
  const obj2 = [];
@@ -2131,7 +2055,7 @@ class Video extends Component {
2131
2055
  // 获取设备失败
2132
2056
  this.test_controller.OnGetDevicesFailed = (code, msg) => {
2133
2057
  console.log('获取设备失败', code, msg)
2134
- this.saveLog('获取设备失败')
2058
+ this.saveLog('Failed to get device')
2135
2059
  this.state.sessionType = false
2136
2060
  this.messageClick('获取设备失败,请检查摄像头设备是否可用或是否禁用摄像头','error')
2137
2061
  this.roomCallBack(2, '获取设备失败',1)
@@ -2143,7 +2067,7 @@ class Video extends Component {
2143
2067
  };
2144
2068
  this.test_controller.OnConnectFailed = (code, msg) => {
2145
2069
  console.log('建立连接失败', code, msg)
2146
- this.saveLog('建立连接失败,'+ code)
2070
+ this.saveLog('Failed to establish connection,'+ code)
2147
2071
  this.state.sessionType = false
2148
2072
  this.roomCallBack(2, '连接失败',2)
2149
2073
  };
@@ -2159,7 +2083,7 @@ class Video extends Component {
2159
2083
  // 初始化房间失败
2160
2084
  this.test_controller.OnInitRoomConfigFail = (err_code, err_msg) => {
2161
2085
  console.log('初始化房间失败', err_code, err_msg)
2162
- this.saveLog('初始化房间失败,' + err_code)
2086
+ this.saveLog('Failed to initialize room,' + err_code)
2163
2087
  this.state.sessionType = false
2164
2088
  this.roomCallBack(2, '初始化失败',3)
2165
2089
  };
@@ -2185,7 +2109,7 @@ class Video extends Component {
2185
2109
  // 创建房间失败
2186
2110
  this.test_controller.OnCreateRoomFailed = (err_code, err_msg) => {
2187
2111
  console.log('创建房间失败', err_code, err_msg)
2188
- this.saveLog('创建房间失败,' + err_code)
2112
+ this.saveLog('Failed to create room,' + err_code)
2189
2113
  this.state.sessionType = false
2190
2114
  this.roomCallBack(2, '创建房间失败',7)
2191
2115
  };
@@ -2202,7 +2126,7 @@ class Video extends Component {
2202
2126
  console.log(code, sid)
2203
2127
  if(code == 5003 || code == 5004 || code == 5005|| code == 5007|| code == 5009|| code == 5010 || code == 5011|| code == 5012) {
2204
2128
  if(sid == document.getElementById('publish_video1').name) {
2205
- this.saveLog('音视频关闭通知' + code)
2129
+ this.saveLog('Audio and video close notification,' + code)
2206
2130
  this.roomCallBack(2, '音视频异常关闭',8)
2207
2131
  } else {
2208
2132
  this.state.isScreenSwitching = false
@@ -2229,7 +2153,7 @@ class Video extends Component {
2229
2153
  };
2230
2154
  // 加入房间失败
2231
2155
  this.test_controller.OnJoinRoomFailed = (err_code, err_msg) => {
2232
- this.saveLog('加入房间失败' + err_code)
2156
+ this.saveLog('Join room failed,' + err_code)
2233
2157
  console.log('加入房间失败', err_code, err_msg)
2234
2158
  // this.setState({
2235
2159
  // sessionType: false,
@@ -2261,6 +2185,15 @@ class Video extends Component {
2261
2185
  this.test_controller.OnSendTextMsgFailed =(msgId, code, msg)=>{
2262
2186
  console.log('发送失败',msgId,code, msg)
2263
2187
  }
2188
+ this.test_controller.OnReceiveTextMsg = (uid, msg)=>{
2189
+ console.log('收到手机端消息',uid, msg, JSON.parse(msg).typeId,JSON.parse(msg).data.sessionId,this.state.sessionId)
2190
+ if(JSON.parse(msg).typeId == 33001 && this.state.sessionId == JSON.parse(msg).data.sessionId) {
2191
+ if(JSON.parse(msg).type == 1) {
2192
+ this.saveAuthorize(JSON.parse(msg).data.userId)
2193
+ this.customerFaceClick(this.state.customerList[this.state.customerSelect])
2194
+ }
2195
+ }
2196
+ }
2264
2197
  this.test_controller.StreamFilterHandler = async (publish_tag, stream, stream_type, publish_device, media_type) =>{
2265
2198
  console.log(`stream processed by client, publish_device=${publish_device}, media_type=${media_type}, publish_tag=${publish_tag},stream_type=${stream_type}`);
2266
2199
  if (stream_type == "subscribe") {
@@ -2388,16 +2321,6 @@ class Video extends Component {
2388
2321
  this.timer = setInterval(
2389
2322
  () => {
2390
2323
  if(!this.state.voiceStatue && this.state.analyserHeight.get(sid).toFixed(2) > 0.1) {
2391
- // this.test_controller.SendTextMsg(JSON.stringify({
2392
- // 'typeId': 3200,
2393
- // 'decibelValue': this.state.analyserHeight.get(sid).toFixed(2),
2394
- // "data": {
2395
- // 'sessionId': this.state.sessionId,
2396
- // 'userId': this.props.tellerAccount,
2397
- // 'data': (new Date()).valueOf()
2398
- // }
2399
-
2400
- // }))
2401
2324
  callNimIM('sendCustomCmdMsg', {
2402
2325
  customId: this.state.imRoomId,
2403
2326
  content: JSON.stringify({
@@ -2435,7 +2358,7 @@ class Video extends Component {
2435
2358
  // 发布媒体流失败
2436
2359
  this.test_controller.OnPublishFailed = (sid, err_code, err_msg) => {
2437
2360
  this.saveLog('发布失败' + err_code)
2438
- console.log('发布媒体流失败', sid, err_code, err_msg)
2361
+ console.log('Publishing media stream failed,', sid, err_code, err_msg)
2439
2362
  if(sid == document.getElementById('publish_video1').name) {
2440
2363
  this.state.sessionType = false
2441
2364
  this.roomCallBack(2, '发布失败',4)
@@ -2621,7 +2544,7 @@ class Video extends Component {
2621
2544
  err_msg
2622
2545
  ) => {
2623
2546
  console.log('订阅媒体流失败', sid, err_code, err_msg)
2624
- this.saveLog('订阅媒体流失败' + err_code)
2547
+ this.saveLog('Failed to subscribe to media stream,' + err_code)
2625
2548
  };
2626
2549
  // 推送“房间与会者列表”给新加⼊者
2627
2550
  this.test_controller.OnRoomAttendanceList = (participants) => {
@@ -3642,7 +3565,7 @@ userType:'1'
3642
3565
  }
3643
3566
  }
3644
3567
  componentWillUnmount() {
3645
- this.saveLog('退出会议')
3568
+ this.saveLog('Exit meeting')
3646
3569
  if (this.test_controller&&this.state.sessionType) {
3647
3570
  clearStreamRemain()
3648
3571
  this.test_controller.LeaveRoom()
@@ -3692,12 +3615,31 @@ userType:'1'
3692
3615
  console.log('isSharedScreen', this.state.isSharedScreen,this.state.laveRoomSharedScreen)
3693
3616
 
3694
3617
  }
3618
+ getToken = async () =>{
3619
+ try{
3620
+ let result = await API.getToken({
3621
+ sessionId: this.state.sessionId ? this.state.sessionId : this.props.sessionId,
3622
+ roomId: this.state.channelId ? this.state.channelId : this.props.roomId
3623
+ })
3624
+ window.sessionStorage.setItem('authTokenHSBC',result)
3625
+ rateList = []
3626
+ this.rateAll().then((res)=>{
3627
+ Array.isArray(res) ? res.map((item)=>{
3628
+ rateList.push(item.tag)
3629
+ }) : rateList = []
3630
+ console.log('rateList',rateList)
3631
+ })
3632
+ }catch (err) {
3633
+ this.roomCallBack(2, '获取tiken失败','SYS-01')
3634
+ }
3635
+ }
3695
3636
  getRoomStatus = async data => {
3696
3637
  try {
3697
3638
  let result = await API.getRoomStatus({
3698
3639
  sessionId: data.sessionId
3699
3640
  });
3700
3641
  if (result.code == 200 && result.data.roomStatus == 1) {
3642
+ // this.getToken()
3701
3643
  this.addToScript()
3702
3644
 
3703
3645
  } else {
@@ -3825,7 +3767,7 @@ userType:'1'
3825
3767
  }
3826
3768
  }
3827
3769
  componentWillMount() {
3828
- console.log('hsbc_teller_sdk', '1.8.1')
3770
+ console.log('hsbc_teller_sdk', '1.8.6')
3829
3771
  if (this.props.sessionId) {
3830
3772
  this.getRoomStatus({
3831
3773
  sessionId: this.props.sessionId
@@ -4146,6 +4088,34 @@ userType:'1'
4146
4088
  isModalVisibleEnd: false
4147
4089
  })
4148
4090
  };
4091
+ updateConfirm=()=>{
4092
+ this.setState({
4093
+ isModalVisibleSFP: true,
4094
+ StaffidSFP: '',
4095
+ PasswordSFP: ''
4096
+ })
4097
+ }
4098
+ handleCancelSFP=()=>{
4099
+ this.setState({
4100
+ isModalVisibleSFP: false
4101
+ })
4102
+ }
4103
+ handleOkSFP=()=>{
4104
+ this.setState({
4105
+ isModalVisibleSFP: false,
4106
+ disabledIdCard: false
4107
+ })
4108
+ }
4109
+ handleChangeStaffid = (event) => {
4110
+ this.setState({
4111
+ StaffidSFP: event.target.value
4112
+ })
4113
+ }
4114
+ handleChangePasswordd = (event) => {
4115
+ this.setState({
4116
+ PasswordSFP: event.target.value
4117
+ })
4118
+ }
4149
4119
  confirmCallback=async(data)=>{
4150
4120
  try {
4151
4121
  let result = await API.confirmCallback({
@@ -4155,6 +4125,8 @@ userType:'1'
4155
4125
  appAccount: this.state.faceCustomerUid,
4156
4126
  idCardNumber: this.state.idCardNumber,
4157
4127
  sessionId: this.state.sessionId,
4128
+ certificateType: this.state.certificateType,
4129
+ customerName: this.state.customerName
4158
4130
  });
4159
4131
  console.log('confirmCallback',result)
4160
4132
  if (result.code == 200) {
@@ -4310,6 +4282,9 @@ userType:'1'
4310
4282
 
4311
4283
  if (result.code == 200) {
4312
4284
  this.messageClick('查询客户信息成功','success')
4285
+ this.setState({
4286
+ isModalVisibleCustomer: false
4287
+ })
4313
4288
  } else {
4314
4289
  this.messageClick('查询客户信息失败','error')
4315
4290
  }
@@ -4340,42 +4315,63 @@ userType:'1'
4340
4315
  });
4341
4316
  }
4342
4317
  var sid
4318
+ var videoName
4343
4319
  if (item.feedId == document.getElementById("feedId1").innerText) {
4344
4320
  sid = document.getElementById('video1').name;
4321
+ videoName = 'video1'
4345
4322
  } else if (item.feedId == document.getElementById("feedId2").innerText) {
4346
4323
  sid = document.getElementById('video2').name;
4324
+ videoName = 'video2'
4347
4325
  } else if (item.feedId == document.getElementById("feedId3").innerText) {
4348
4326
  sid = document.getElementById('video3').name;
4327
+ videoName = 'video3'
4349
4328
  } else if (item.feedId == document.getElementById("feedId4").innerText) {
4350
4329
  sid = document.getElementById('video4').name;
4330
+ videoName = 'video4'
4351
4331
  } else if (item.feedId == document.getElementById("feedId5").innerText) {
4352
4332
  sid = document.getElementById('video5').name;
4333
+ videoName = 'video5'
4353
4334
  } else if (item.feedId == document.getElementById("feedId6").innerText) {
4354
4335
  sid = document.getElementById('video6').name;
4336
+ videoName = 'video6'
4355
4337
  } else if (item.feedId == document.getElementById("feedId7").innerText) {
4356
4338
  sid = document.getElementById('video7').name;
4339
+ videoName = 'video7'
4357
4340
  } else if (item.feedId == document.getElementById("feedId8").innerText) {
4358
4341
  sid = document.getElementById('video8').name;
4342
+ videoName = 'video8'
4359
4343
  } else if (item.feedId == document.getElementById("feedId9").innerText) {
4360
4344
  sid = document.getElementById('video9').name;
4345
+ videoName = 'video'
4361
4346
  } else if (item.feedId == document.getElementById("feedId10").innerText) {
4362
4347
  sid = document.getElementById('video10').name;
4348
+ videoName = 'video10'
4363
4349
  } else if (item.feedId == document.getElementById("feedId11").innerText) {
4364
4350
  sid = document.getElementById('video11').name;
4351
+ videoName = 'video11'
4365
4352
  } else if (item.feedId == document.getElementById("feedId12").innerText) {
4366
4353
  sid = document.getElementById('video12').name;
4354
+ videoName = 'video12'
4367
4355
  }
4368
4356
  console.log(sid)
4369
4357
  this.state.customOcrSid = sid
4370
4358
  this.state.faceCustomerUid = item.customId,
4359
+ this.state.customerName = item.name
4371
4360
  this.setState({
4372
4361
  clickedFacial: false,
4373
4362
  clickedOcr: false,
4374
4363
  isFaceImage: false,
4375
4364
  facialImg: ocrImage,
4365
+ disabledIdCard: true,
4366
+ IDtypeFrontOrBack: '请截取证件正面'
4376
4367
  },()=>{
4368
+
4369
+
4377
4370
  this.setState({
4378
4371
  isModalVisibleFacial: true,
4372
+ },()=>{
4373
+ const videoMedia = document.getElementById('publish_video_2');
4374
+ videoMedia.srcObject = document.getElementById(videoName).srcObject
4379
4375
  })
4380
4376
  })
4381
4377
  }
@@ -5137,25 +5133,123 @@ userType:'1'
5137
5133
  this.sendNotification()
5138
5134
  }
5139
5135
  }
5140
- // shouldComponentUpdate(nextProps,nextState){
5141
- // console.log('componentDidUpdate',nextProps,nextState)
5142
- // if(nextProps.shareMask != nextState.shareMaskState){
5143
- // this.state.shareMaskState = nextProps.shareMask
5144
- // this.sendNotification()
5145
- // }
5146
- // }
5147
- // static getDerivedStateFromProps(props, state) {
5148
- // console.log('getDerivedStateFromProps',props,state,props.shareMask)
5149
- // if(props.shareMask!==state.shareMaskState){
5150
- // // this.sendNotification()
5151
- // return {
5152
-
5153
- // shareMaskState:shareMask,
5136
+ onChangeOCRCustomer=(e) => {
5137
+ console.log(e)
5138
+ this.setState({
5139
+ customerSelect: e.target.value
5140
+ })
5141
+ }
5142
+ handleCancelCustomer=()=>{
5143
+ this.setState({
5144
+ isModalVisibleCustomer: false
5145
+ })
5146
+ }
5147
+ handleOkCustomer=()=>{
5148
+ if(this.state.isCustomerSelect) {
5149
+ if(this.state.customerList[this.state.customerSelect].tourist) {
5150
+ this.customerFaceClick(this.state.customerList[this.state.customerSelect])
5151
+ } else {
5152
+ this.setState({
5153
+ isCustomerSelect: false,
5154
+ customerTitleName: this.state.customerList[this.state.customerSelect].name
5155
+ })
5156
+ }
5157
+
5158
+ } else {
5159
+ this.getAuthorizeResult(this.state.customerList[this.state.customerSelect].customId).then((res)=>{
5160
+ if(res) {
5161
+ this.customerFaceClick(this.state.customerList[this.state.customerSelect])
5162
+ } else {
5163
+ if(this.state.documentType == 0) {
5164
+ this.test_controller.SendTextMsg(JSON.stringify({
5165
+ 'typeId': 3300,
5166
+ "data": {
5167
+ 'sessionId': this.state.sessionId,
5168
+ 'title': '为了有效确认客户身份,请您配合进行我行的身份识别和核验。请您阅读以下内容,若您同意,请您之后在摄像头前出示您的身份证件,我行将对您的身份证件拍照并采集证件信息;同时,我行会对您进行脸部拍照,采集您的脸部图像。',
5169
+ 'list': [
5170
+ {
5171
+ 'id': 1,
5172
+ 'content': '您是否授权汇丰中国对您的证件以及脸部进行拍照,采集并留存您的证件信息以及脸部图像以便我行进行身份识别?'
5173
+ },
5174
+ {
5175
+ 'id': 2,
5176
+ 'content': '为了通过人脸对比进行身份识别和核验,我行需要将您的姓名、身份证件号码和脸部图像发送给中国人民银行或全国公民身份证号码查询服务中心授权的第三方,并由第三方进一步发送至中国人民银行或全国公民身份证号码查询服务中心进行人脸对比或信息核对。'
5177
+ }
5178
+ ]
5179
+ }
5180
+
5181
+ }))
5182
+ } else if(this.state.documentType == 1) {
5183
+ this.test_controller.SendTextMsg(JSON.stringify({
5184
+ 'typeId': 3300,
5185
+ "data": {
5186
+ 'sessionId': this.state.sessionId,
5187
+ 'title': '为了有效确认客户身份,请您配合进行我行的身份识别。请您阅读以下内容,若您同意,请您之后在摄像头前出示您的身份证件,我行将对您的身份证件拍照并采集证件信息;',
5188
+ 'list': [
5189
+ {
5190
+ 'id': 1,
5191
+ 'content': '您是否授权汇丰中国对您的证件进行拍照,采集并留存您的证件信息以便我行进行身份确认?'
5192
+ }
5193
+ ]
5194
+ }
5195
+
5196
+ }))
5197
+ }
5154
5198
 
5155
- // }
5156
- // }
5157
- // return null
5158
- // }
5199
+
5200
+ }
5201
+ })
5202
+ this.setState({
5203
+ isModalVisibleCustomer: false,
5204
+ })
5205
+ // this.customerFaceClick(this.state.customerList[this.state.customerSelect])
5206
+ }
5207
+
5208
+ }
5209
+ onChangeDocumentType=(e)=>{
5210
+ this.setState({
5211
+ documentType: e.target.value
5212
+ })
5213
+ }
5214
+ getAuthorizeResult= async (appAccount) => {
5215
+ try {
5216
+ let result = await API.getAuthorizeResult({
5217
+ activityId: this.props.businessNumber,
5218
+ appAccount: appAccount,
5219
+ });
5220
+ console.log(result)
5221
+ if (result.code == 200 && result.data.ifAuthorize) {
5222
+ console.log('成功')
5223
+ return true
5224
+ } else {
5225
+
5226
+ // this.messageClick('保存失败','error')
5227
+ return false
5228
+ }
5229
+ } catch (err) {
5230
+ console.log(err)
5231
+ return false
5232
+ }
5233
+ }
5234
+ saveAuthorize= async (appAccount) => {
5235
+ try {
5236
+ let result = await API.saveAuthorize({
5237
+ activityId: this.props.businessNumber,
5238
+ authorizeType: this.state.documentType==0 ? 'ID' : 'NID',
5239
+ appAccount: appAccount,
5240
+ idCardAuthorize: this.state.documentType==0 ? 'YES' : '',
5241
+ pictureAuthorize: 'YES'
5242
+ });
5243
+ console.log(result)
5244
+ if (result.code == 200) {
5245
+ console.log('成功')
5246
+ } else {
5247
+ // this.messageClick('保存失败','error')
5248
+ }
5249
+ } catch (err) {
5250
+ console.log(err)
5251
+ }
5252
+ }
5159
5253
  render() {
5160
5254
  const { meetingInfo,isTranscribing } = this.props
5161
5255
  var pdfChildren
@@ -5293,7 +5387,7 @@ userType:'1'
5293
5387
  <canvas id="canvas" className="canvas"></canvas>
5294
5388
  </CanvasHome>
5295
5389
  <div className="videoDiv" style={{ display: (this.state.isSelect == 'RMScreen' || this.state.isSelect == 'staffScreen') ? '' : 'none', }}>
5296
- <div className="videoDiv" style={{'text-align': 'center'}}>
5390
+ <div className="videoDiv" style={{'textAlign': 'center'}}>
5297
5391
  <video
5298
5392
  id="video20"
5299
5393
  autoPlay
@@ -5817,6 +5911,9 @@ userType:'1'
5817
5911
 
5818
5912
  </div>,
5819
5913
  this.state.idCardName && <div key='facial'>
5914
+ {
5915
+ this.state.disabledIdCard &&<Button className="modelButtonFaceOk" danger onClick={(e)=>this.updateConfirm('noFace')}>修改</Button>
5916
+ }
5820
5917
  <Button className="modelButtonFaceOk" danger onClick={(e)=>this.confirmCallback('face')}>完成并发起人脸识别</Button>
5821
5918
  <Button className="modelButtonOk" type="primary" danger onClick={(e)=>this.confirmCallback('noFace')}>完成</Button>
5822
5919
  </div>
@@ -5828,28 +5925,94 @@ userType:'1'
5828
5925
  <Option value="2">反面</Option>
5829
5926
  </Select>
5830
5927
  } */}
5831
- {
5832
- !this.state.idCardName &&<div className='faceCardImg'>
5833
- <img className="faceImg" src={this.state.facialImg} alt=""></img>
5928
+ <div className='faceCardImg'>
5929
+ {/* <div>{this.state.IDtypeFrontOrBack}</div> */}
5930
+ {
5931
+ !this.state.idCardName &&<div>
5932
+ <video className="faceImg" id="publish_video_2" autoPlay muted={true}></video>
5933
+ </div>
5934
+ }
5935
+
5936
+ <img className="faceImg" src={this.state.facialImg} alt=""></img>
5834
5937
  </div>
5835
- }
5836
5938
  {
5837
5939
  this.state.idCardName &&<div className='resuleCard'>
5838
- <div><span>客户姓名</span> <input type="text" value={this.state.idCardName} onChange={this.handleChangeIdCardName} /></div>
5839
- <div><span>身份证号</span> <input type="text" value={this.state.idCardNumber} onChange={this.handleChangeIdCardNumber} /></div>
5940
+ <div>证件信息确认</div>
5941
+ <div><span>客户姓名</span> <input disabled={this.state.disabledIdCard} type="text" value={this.state.idCardName} onChange={this.handleChangeIdCardName} /></div>
5942
+ <div><span>身份证号</span> <input disabled={this.state.disabledIdCard} type="text" value={this.state.idCardNumber} onChange={this.handleChangeIdCardNumber} /></div>
5840
5943
  </div>
5841
5944
  }
5842
5945
 
5843
5946
 
5844
5947
  </div>
5845
5948
  </Modal>
5846
- {/* <Modal title={this.state.titleModal} cancelText="取消" okText="确定" visible={this.state.isModalVisibleFacial}
5847
- onOk={this.handleOkFacial} onCancel={this.handleCancelFacial}>
5848
- <div className="faceBody">
5849
- <img className="faceImg" src={this.state.facialImg} alt=""></img>
5949
+ <Modal title="经理人员授权(SFP双录同款)" closable={false} centered={true} visible={this.state.isModalVisibleSFP}
5950
+ footer={[
5951
+ <div key='end'>
5952
+ <Button className="modelButtonCancel" onClick={this.handleCancelSFP}>取消</Button>
5953
+ <Button className="modelButtonOk" type="primary" danger onClick={this.handleOkSFP}>确定</Button>
5954
+ </div>
5955
+ ]}>
5956
+ <div className="faceBody">
5957
+ <div className='resuleCard'>
5958
+ <div>
5959
+ <span>Staffid</span>
5960
+ <input type="text" value={this.state.StaffidSFP} onChange={this.handleChangeStaffid}></input>
5961
+ </div>
5962
+ <div>
5963
+ <span>Password</span>
5964
+ <input type="text" value={this.state.PasswordSFP} onChange={this.handleChangePasswordd}></input>
5965
+ </div>
5966
+ </div>
5967
+ </div>
5968
+
5969
+ </Modal>
5970
+ <Modal title={this.state.customerTitleName} closable={false} centered={true} visible={this.state.isModalVisibleCustomer}
5971
+ footer={[
5972
+ <div key='end'>
5973
+ <Button className="modelButtonCancel" onClick={this.handleCancelCustomer}>取消</Button>
5974
+ <Button className="modelButtonOk" type="primary" danger onClick={this.handleOkCustomer}>下一步</Button>
5975
+ </div>
5976
+ ]}>
5977
+ <div>
5978
+ <div className='selectCustomer'>
5979
+ {
5980
+ this.state.isCustomerSelect &&<div>
5981
+ <div>
5982
+ 请选择进行身份识别的客户
5983
+ </div>
5984
+ <div>
5985
+ <Radio.Group onChange={this.onChangeOCRCustomer} value={this.state.customerSelect}>
5986
+ <Space direction="vertical">
5987
+ {
5988
+ this.state.customerList.map((item,index)=>{
5989
+ return <Radio value={index}>{item.name}</Radio>
5990
+ })
5991
+ }
5992
+ </Space>
5993
+ </Radio.Group>
5994
+ </div>
5995
+ </div>
5996
+ }
5997
+ {
5998
+ !this.state.isCustomerSelect &&<div>
5999
+ <div>
6000
+ 请您确认您的身份证件类型
6001
+ </div>
6002
+ <div>
6003
+ <Radio.Group onChange={this.onChangeDocumentType} value={this.state.documentType}>
6004
+ <Space direction="vertical">
6005
+ <Radio value={0}>身份证:或外国人永久居住证;或港澳台居民居住证</Radio>
6006
+ <Radio value={1}>护照:或台湾来往大陆通行证;或港澳来往大陆通行证</Radio>
6007
+ </Space>
6008
+ </Radio.Group>
6009
+ </div>
6010
+ </div>
6011
+ }
6012
+ </div>
5850
6013
  </div>
5851
6014
 
5852
- </Modal> */}
6015
+ </Modal>
5853
6016
  <Modal className="modelClass" title="邀请参会人员" closable={false} centered={true} visible={this.state.isModalVisibleInvitation} footer={[
5854
6017
  <div key='invitation'>
5855
6018
  <Button className="modelButtonCancel" onClick={this.handleCancelInvitation}>取消</Button>
@@ -5969,9 +6132,7 @@ sessionId: "",
5969
6132
  isTranscribing: false,
5970
6133
  shareMask: false,
5971
6134
  isOpenSound: false, // true开启进出音效 false不开启
5972
- endpoint: 'cn-shanghai.log.aliyuncs.com',
5973
- project: 'hsbc',
5974
- logstore: 'hsbc',
6135
+ logUrl: 'http://hsbc.cn-shanghai.log.aliyuncs.com/logstores/hsbc/track?APIVersion=0.6.0&app=meeting-ui',
5975
6136
  internalUrl: 'https://wp-staff-gateway.wealth-platform.uat.ali.cloud.cn.hsbc/meeting-ui/OHB/CN/HSBC?chnlID=OHB&locale=zh_CN&chnlCC=CN&chnlGMC=HSBC&targetFunc=supervisorMeeting&sourceFunc=rmMeeting'
5976
6137
  }
5977
6138
  export default Video