react_hsbc_teller 1.9.81 → 2.0.0

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.
@@ -2,6 +2,7 @@
2
2
  /* eslint-disable no-unused-vars */
3
3
  /* eslint-disable eqeqeq */
4
4
  import React, { Component, useState } from 'react';
5
+ import QRCode from 'qrcode.react';
5
6
  import API from '../../api/api';
6
7
  import { initWebSocket, joinRoom, disconnect } from '../../common/websocket';
7
8
  import { BoardOperate } from '../../common/index.esm.js';
@@ -14,6 +15,7 @@ import cameraImgOpen from '../../assets/img/icon_camera.png'
14
15
  import cameraImgCloe from '../../assets/img/icon_cameraOne.png'
15
16
  import beautyImg from '../../assets/img/whiteningLut.jpg'
16
17
  import ocrImage from '../../assets/img/jietu.png'
18
+ import faceImage from '../../assets/img/jietu_face.png'
17
19
  import autod from '../../assets/mp3/joinmeeting.mp3'
18
20
  import internalJoin from '../../assets/mp3/internalJoin.mp3'
19
21
  import internalLeft from '../../assets/mp3/internalLeft.mp3'
@@ -40,8 +42,11 @@ import 'antd/lib/space/style'
40
42
  import styled from 'styled-components';
41
43
  import { Button } from '../../../node_modules/antd/lib/index';
42
44
  import SignMy from '../sign/signMy.jsx'
45
+ import Step from '../components/step/step.jsx'
43
46
  import axios from 'axios';
44
47
  import CryptoJS from "crypto-js";
48
+ const IDtypeFront = '请客户在其设备后置摄像头下展示证件正面(如:身份证照片页面)'
49
+ const IDtypeBack = '请在后置摄像头下展示证件反面(如:身份证国徽页)'
45
50
  const { Option } = Select;
46
51
  const LEAVE_TYPE = {
47
52
  TELLER_EXIT: 1, // 坐席退出
@@ -55,7 +60,7 @@ let videoName
55
60
  let muteJson = new Map()
56
61
  let dateTime = 0
57
62
  let messageValue = ''
58
- let beautyType = false
63
+ // let beautyType = false
59
64
  // let beautyNum = 0 // 0-关闭 1--弱 2--中 5---高
60
65
  let rateList = []
61
66
  let beautyDiv = {};
@@ -104,6 +109,7 @@ function clearStreamRemain() {
104
109
  document.body.removeChild(beautyDiv.beauty_div);
105
110
  beautyDiv.beauty_div = null;
106
111
  }
112
+ console.log('clearStreamRemain!!!!!')
107
113
  beautyDiv = {};
108
114
  };
109
115
  async function startBeauty(stream) {
@@ -163,6 +169,7 @@ class Video extends Component {
163
169
  }
164
170
  cancel = axios.CancelToken.source()
165
171
  state = {
172
+ beautyType: false,
166
173
  beautyName: '开启美颜',
167
174
  signNoClick: false,
168
175
  listVideoPicture: [],
@@ -179,7 +186,7 @@ class Video extends Component {
179
186
  isWhiteboard: false,
180
187
  isSelect: '',
181
188
  loading: false,
182
- titleModal: '人脸识别',
189
+ titleModal: '身份验证',
183
190
  faceCustomerType: 1, // 1无感人脸,2ocr
184
191
  faceCustomerUid: '',
185
192
  customerList: [],
@@ -188,6 +195,7 @@ class Video extends Component {
188
195
  isModalVisibleInvitation: false,
189
196
  linkData: '',
190
197
  roomCustomerList: [],
198
+ userIdCardResults: {},
191
199
  facialImg: '',
192
200
  isFaceImage: false,
193
201
  isModalVisibleFacial: false,
@@ -216,33 +224,18 @@ class Video extends Component {
216
224
  isPictureInPicture: false,
217
225
  clickedFacial: false,
218
226
  clickedOcr: false,
219
- videoOneName: '',
220
- videoTwoName: '',
221
- videoThreeName: '',
222
- videoFourName: '',
223
- videoFiveName: '',
224
- videoSixName: '',
225
- videoSevenName: '',
226
- videoEightName: '',
227
- videoTenName: '',
228
- videoNineName: '',
229
- videoTwelveName: '',
230
- videoElevenName: '',
231
227
  tabTitles: [
232
228
  ],
233
- videoList: [],
234
- voiceVideoOne: false,
235
- voiceVideoTwo: false,
236
- voiceVideoThree: false,
237
- voiceVideoFour: false,
238
- voiceVideoFive: false,
239
- voiceVideoSix: false,
240
- voiceVideoSeven: false,
241
- voiceVideoEight: false,
242
- voiceVideoNine: false,
243
- voiceVideoTen: false,
244
- voiceVideoEleven: false,
245
- voiceVideoTwelve: false,
229
+ videoList: [{
230
+ videoName: '',
231
+ mute: false,
232
+ noVideo: false,
233
+ isPIBIntranet: false,
234
+ idIndex: 1,
235
+ userSide: 1,
236
+ userId: '',
237
+ hasOcr: 0, // 0: 未做ocr 1:非身份证ocr 2:身份证ocr
238
+ }],
246
239
  cameraList: [],
247
240
  microphoneList: [],
248
241
  speakerList: [],
@@ -254,59 +247,9 @@ class Video extends Component {
254
247
  analyserData: new Map(),
255
248
  analyserHeight: new Map(),
256
249
  OnVolumeAnalyserMap: new Map(),
257
- noVideoOne: false,
258
- noVideoTwo: false,
259
- noVideoThree: false,
260
- noVideoFour: false,
261
- noVideoFive: false,
262
- noVideoSix: false,
263
- noVideoSeven: false,
264
- noVideoEight: false,
265
- noVideoNine: false,
266
- noVideoTen: false,
267
- noVideoEleven: false,
268
- noVideoTwelve: false,
269
250
  manualClose: false,
270
251
  defaultValue: '1',
271
252
  customOcrSid: '',
272
- isPIBIntranet: [
273
- {
274
- type: false
275
- },
276
- {
277
- type: false
278
- },
279
- {
280
- type: false
281
- },
282
- {
283
- type: false
284
- },
285
- {
286
- type: false
287
- },
288
- {
289
- type: false
290
- },
291
- {
292
- type: false
293
- },
294
- {
295
- type: false
296
- },
297
- {
298
- type: false
299
- },
300
- {
301
- type: false
302
- },
303
- {
304
- type: false
305
- },
306
- {
307
- type: false
308
- }
309
- ],
310
253
  shareMaskState: false,
311
254
  idCardName: '',
312
255
  idCardNameFace: '',
@@ -325,7 +268,7 @@ class Video extends Component {
325
268
  documentType: '',
326
269
  isCustomerSelect: true,
327
270
  documentError: '',
328
- customerTitleName: '客户身份识别',
271
+ customerTitleName: '客户身份验证',
329
272
  certificateType: 'ID_CARD',
330
273
  customerName: '',
331
274
  IDtypeFrontOrBack: '',
@@ -352,7 +295,7 @@ class Video extends Component {
352
295
  saveLog = (val) => {
353
296
  axios({
354
297
  method: 'get',
355
- baseURL: this.props.logUrl + '&message=' + encodeURIComponent(val) + '&react_hsbc_teller=1.9.81&logTime=' + Date.now() + '&mtoken=' + encodeURIComponent(this.state.rtoken) + '&roomId=' + encodeURIComponent(this.state.channelId) + '&sessionId=' + encodeURIComponent(this.state.sessionId) + '&appointmentID=' + this.props.businessNumber,
298
+ baseURL: this.props.logUrl + '&message=' + encodeURIComponent(val) + '&react_hsbc_teller=2.0.0&logTime=' + Date.now() + '&mtoken=' + encodeURIComponent(this.state.rtoken) + '&roomId=' + encodeURIComponent(this.state.channelId) + '&sessionId=' + encodeURIComponent(this.state.sessionId) + '&appointmentID=' + this.props.businessNumber,
356
299
 
357
300
  }).then(res => {
358
301
 
@@ -527,6 +470,7 @@ class Video extends Component {
527
470
  // 允许最大断网时间 (超过未重连, 直接关闭)
528
471
  config_param.network_check_timeout = 10000;
529
472
  this.test_controller.Connect(config_param)
473
+ this.saveLog('mrtc connect start')
530
474
  };
531
475
  // 初始化视频
532
476
  ConnectMRTC = () => {
@@ -583,6 +527,7 @@ class Video extends Component {
583
527
  }
584
528
  ];
585
529
  this.test_controller.InitRoomConfig(config_param)
530
+ this.saveLog('mrtc InitRoomConfig start')
586
531
  };
587
532
  rateAll = async () => {
588
533
  let data = ''
@@ -780,7 +725,7 @@ class Video extends Component {
780
725
  this.setState({
781
726
  cardFailReason: '证件图片不清晰,请重试。返回重拍时,请检查并确保身份证件图片信息完整清晰后再提交核查。[#'+value+'#]'
782
727
  })
783
- } else if(value == -1001 || value == -1002|| value == -1003||value == -1004||value == -1005||value==-1006) {
728
+ } else if(value == -1001 || value == -1002|| value == -1003||value == -1004||value == -1005||value==-100801||value==-100802) {
784
729
  this.setState({
785
730
  cardFailReason: '系统或网络连接异常,请重试。若仍有问题,请联系Support同事。[#'+value+'#]'
786
731
  })
@@ -799,7 +744,11 @@ class Video extends Component {
799
744
  this.setState({
800
745
  faceFailReason: '用户信息核查未通过。请返回重试。返回重拍时,请检查并确保客户照片完整清晰后再提交核查。[#'+ value + '#]'
801
746
  })
802
- }else if(value == 209) {
747
+ }else if(value == 206) {
748
+ this.setState({
749
+ faceFailReason: '用户信息核查无法处理,请重试。若仍有问题,请联系Support同事。[#'+ value + '#]'
750
+ })
751
+ } else if(value == 209) {
803
752
  this.setState({
804
753
  faceFailReason: '用户信息核查未通过。请确认客户与其提供的证件信息一致后,再提交核查。[#'+ value + '#]'
805
754
  })
@@ -816,9 +765,22 @@ class Video extends Component {
816
765
  }
817
766
  contrastFaceVerify = async () => {
818
767
  try {
768
+ let userInfo = this.state.userIdCardResults[this.state.faceCustomerUid]
769
+ console.log(this.state.faceCustomerUid, userInfo)
770
+ if (!userInfo || !userInfo.idCardNumber) {
771
+ console.log('没有身份证ocr信息')
772
+ this.setState({
773
+ loadingFace: false,
774
+ faceResuly: 'fail',
775
+ isFaceImage: '',
776
+ // faceFailReason: result.message
777
+ })
778
+ this.errorCodeClick('face', 201)
779
+ return
780
+ }
819
781
  let result = await API.contrastFaceVerify({
820
- idCardNumber: this.state.idCardNumberFace,
821
- idCardName: this.state.idCardNameFace,
782
+ idCardName: userInfo.idCardName, // idCardName: this.state.idCardNameFace,
783
+ idCardNumber: userInfo.idCardNumber, // idCardNumber: this.state.idCardNumberFace,
822
784
  staffId: this.props.tellerAccount,
823
785
  activityId: this.props.businessNumber,
824
786
  appAccount: this.state.faceCustomerUid,
@@ -832,7 +794,10 @@ class Video extends Component {
832
794
  loadingFace: false,
833
795
  faceResuly: 'success',
834
796
  isFaceImage: '',
835
- faceFailReason: ''
797
+ faceFailReason: '',
798
+ idCardNameFace: userInfo.idCardName,
799
+ idCardNumberFace: userInfo.idCardNumber,
800
+ certificateValidityFace: userInfo.certificateValidity
836
801
  })
837
802
  // this.setState({
838
803
  // isModalVisibleFacial: false
@@ -846,6 +811,8 @@ class Video extends Component {
846
811
  // faceFailReason: result.message
847
812
  })
848
813
  this.errorCodeClick('face',result.code)
814
+ // this.saveLog('meeting ID&V error, code=' + result.code )
815
+ this.saveLog('face recognition api error code ' + result.code + '. [ LIVE_SIGN_ALI_FACE_RECOGNITION_ERROR ]')
849
816
  }
850
817
 
851
818
 
@@ -899,112 +866,17 @@ class Video extends Component {
899
866
  // 获取人员客户列表
900
867
  selectCustomer = (val) => {
901
868
  const list = []
902
- if (document.getElementById('video1').name && !this.state.isPIBIntranet[0].type) {
903
- console.log(this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId1").innerText))
904
- // document.getElementById("feedId1").innerText
905
- list.push({
906
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId1").innerText).feedId,
907
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId1").innerText).uid,
908
- name: this.state.videoOneName,
909
- tourist: false
910
- })
911
- }
912
- if (document.getElementById('video2').name && !this.state.isPIBIntranet[1].type) {
913
- console.log(this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId2").innerText))
914
- // document.getElementById("feedId1").innerText
915
- list.push({
916
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId2").innerText).feedId,
917
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId2").innerText).uid,
918
- name: this.state.videoTwoName,
919
- tourist: false
920
- })
921
- }
922
- if (document.getElementById('video3').name && !this.state.isPIBIntranet[2].type) {
923
- console.log(this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId3").innerText))
924
- // document.getElementById("feedId1").innerText
925
- list.push({
926
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId3").innerText).feedId,
927
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId3").innerText).uid,
928
- name: this.state.videoThreeName,
929
- tourist: false
930
- })
931
- }
932
- if (document.getElementById('video4').name && !this.state.isPIBIntranet[3].type) {
933
- console.log(this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId4").innerText))
934
- // document.getElementById("feedId1").innerText
935
- list.push({
936
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId4").innerText).feedId,
937
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId4").innerText).uid,
938
- name: this.state.videoFourName,
939
- tourist: false
940
- })
941
- }
942
- if (document.getElementById('video5').name && !this.state.isPIBIntranet[4].type) {
943
- console.log(this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId5").innerText))
944
- // document.getElementById("feedId1").innerText
945
- list.push({
946
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId5").innerText).feedId,
947
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId5").innerText).uid,
948
- name: this.state.videoFiveName,
949
- tourist: false
950
- })
951
- }
952
- if (document.getElementById('video6').name && !this.state.isPIBIntranet[5].type) {
953
- console.log(this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId6").innerText))
954
- list.push({
955
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId6").innerText).feedId,
956
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId6").innerText).uid,
957
- name: this.state.videoSixName,
958
- tourist: false
959
- })
960
- }
961
- if (document.getElementById('video7').name && !this.state.isPIBIntranet[6].type) {
962
- list.push({
963
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId7").innerText).feedId,
964
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId7").innerText).uid,
965
- name: this.state.videoSevenName,
966
- tourist: false
967
- })
968
- }
969
- if (document.getElementById('video8').name && !this.state.isPIBIntranet[7].type) {
970
- list.push({
971
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId8").innerText).feedId,
972
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId8").innerText).uid,
973
- name: this.state.videoEightName,
974
- tourist: false
975
- })
976
- }
977
- if (document.getElementById('video9').name && !this.state.isPIBIntranet[8].type) {
978
- list.push({
979
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId9").innerText).feedId,
980
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId9").innerText).uid,
981
- name: this.state.videoNineName,
982
- tourist: false
983
- })
984
- }
985
- if (document.getElementById('video10').name && !this.state.isPIBIntranet[9].type) {
986
- list.push({
987
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId10").innerText).feedId,
988
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId10").innerText).uid,
989
- name: this.state.videoTenName,
990
- tourist: false
991
- })
992
- }
993
- if (document.getElementById('video11').name && !this.state.isPIBIntranet[10].type) {
994
- list.push({
995
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId11").innerText).feedId,
996
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId11").innerText).uid,
997
- name: this.state.videoElevenName,
998
- tourist: false
999
- })
1000
- }
1001
- if (document.getElementById('video12').name && !this.state.isPIBIntranet[11].type) {
1002
- list.push({
1003
- feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId12").innerText).feedId,
1004
- customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId12").innerText).uid,
1005
- name: this.state.videoTwelveName,
1006
- tourist: false
1007
- })
869
+ for (let i =1;i<=12;i++){
870
+ let item = this.state.videoList[i-1];
871
+ if (document.getElementById('video'+ i).name && !item.isPIBIntranet && item.userSide===1) {
872
+ // console.log(this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId"+i).innerText))
873
+ list.push({
874
+ feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId"+i).innerText).feedId,
875
+ customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId"+i).innerText).uid,
876
+ name: item.videoName,
877
+ tourist: false
878
+ })
879
+ }
1008
880
  }
1009
881
  console.log(list)
1010
882
  this.setState({
@@ -1018,7 +890,7 @@ class Video extends Component {
1018
890
  isCustomerSelect: true,
1019
891
  customerSelect: list.length == 1 ? 1 : '',
1020
892
 
1021
- customerTitleName: '客户身份识别'
893
+ customerTitleName: '客户身份验证'
1022
894
  },()=>{
1023
895
  console.log(this.state.customerSelect)
1024
896
  this.setState({
@@ -1083,7 +955,7 @@ class Video extends Component {
1083
955
  if (this.isFileSuccuse()) {
1084
956
  this.state.faceCustomerType = 1
1085
957
  this.setState({
1086
- titleModal: '人脸识别'
958
+ titleModal: '身份验证'
1087
959
  })
1088
960
  this.selectCustomer('facial')
1089
961
  }
@@ -1092,7 +964,7 @@ class Video extends Component {
1092
964
  if (this.isFileSuccuse()) {
1093
965
  this.state.faceCustomerType = 2
1094
966
  this.setState({
1095
- titleModal: 'OCR识别'
967
+ titleModal: '拍摄证件照片'
1096
968
  })
1097
969
  this.selectCustomer('ocr')
1098
970
  }
@@ -1125,110 +997,28 @@ class Video extends Component {
1125
997
  pictureInPictureClick = (val) => {
1126
998
  let interval
1127
999
  const list = []
1128
- if (document.getElementById('video1').name) {
1129
- list.push({
1130
- name: 'video1',
1131
- title: this.state.videoOneName,
1132
- voice: 'voiceVideoOne',
1133
- noVideo: this.state.noVideoOne
1134
- })
1135
- }
1136
1000
  if (document.getElementById('publish_video1').name) {
1137
1001
  list.push({
1138
1002
  name: 'publish_video1',
1139
1003
  title: this.props.meetingInfo.host ? this.props.meetingInfo.host : '客户经理1',
1140
- voice: 'voiceStatue',
1004
+ mute: this.state.voiceStatue,
1141
1005
  noVideo: false
1142
1006
  })
1143
1007
  }
1144
- if (document.getElementById('video2').name) {
1145
- list.push({
1146
- name: 'video2',
1147
- title: this.state.videoTwoName,
1148
- voice: 'voiceVideoTwo',
1149
- noVideo: this.state.noVideoTwo
1150
- })
1151
- }
1152
- if (document.getElementById('video3').name) {
1153
- list.push({
1154
- name: 'video3',
1155
- title: this.state.videoThreeName,
1156
- voice: 'voiceVideoThree',
1157
- noVideo: this.state.noVideoThree
1158
- })
1159
- }
1160
- if (document.getElementById('video4').name) {
1161
- list.push({
1162
- name: 'video4',
1163
- title: this.state.videoFourName,
1164
- voice: 'voiceVideoFour',
1165
- noVideo: this.state.noVideoFour
1166
- })
1167
- }
1168
- if (document.getElementById('video5').name) {
1169
- list.push({
1170
- name: 'video5',
1171
- title: this.state.videoFiveName,
1172
- voice: 'voiceVideoFive',
1173
- noVideo: this.state.noVideoFive
1174
- })
1175
- }
1176
- if (document.getElementById('video6').name) {
1177
- list.push({
1178
- name: 'video6',
1179
- title: this.state.videoSixName,
1180
- voice: 'voiceVideoSix',
1181
- noVideo: this.state.noVideoSix
1182
- })
1183
- }
1184
-
1185
- if (document.getElementById('video7').name) {
1186
- list.push({
1187
- name: 'video7',
1188
- title: this.state.videoSevenName,
1189
- voice: 'voiceVideoSeven',
1190
- noVideo: this.state.noVideoSeven
1191
- })
1192
- }
1193
- if (document.getElementById('video8').name) {
1194
- list.push({
1195
- name: 'video8',
1196
- title: this.state.videoEightName,
1197
- voice: 'voiceVideoEight',
1198
- noVideo: this.state.noVideoEight
1199
- })
1200
- }
1201
- if (document.getElementById('video9').name) {
1202
- list.push({
1203
- name: 'video9',
1204
- title: this.state.videoNineName,
1205
- voice: 'voiceVideoNine',
1206
- noVideo: this.state.noVideoNine
1207
- })
1208
- }
1209
- if (document.getElementById('video10').name) {
1210
- list.push({
1211
- name: 'video10',
1212
- title: this.state.videoTenName,
1213
- voice: 'voiceVideoTen',
1214
- noVideo: this.state.noVideoTen
1215
- })
1216
- }
1217
- if (document.getElementById('video11').name) {
1218
- list.push({
1219
- name: 'video11',
1220
- title: this.state.videoElevenName,
1221
- voice: 'voiceVideoEleven',
1222
- noVideo: this.state.noVideoEleven
1223
- })
1224
- }
1225
- if (document.getElementById('video12').name) {
1226
- list.push({
1227
- name: 'video12',
1228
- title: this.state.videoTwelveName,
1229
- voice: 'voiceVideoTwelve',
1230
- noVideo: this.state.noVideoTwelve
1231
- })
1008
+ console.log(this.state.videoList)
1009
+ var sortedlist = [...this.state.videoList]
1010
+ sortedlist.sort((a, b)=>{
1011
+ return a.order - b.order;
1012
+ })
1013
+ for (let i =1;i<=12;i++){
1014
+ if(document.getElementById('video'+i).name){
1015
+ list.push({
1016
+ name: 'video' + i,
1017
+ title: sortedlist[i-1].videoName,
1018
+ mute: sortedlist[i-1].mute,
1019
+ noVideo: sortedlist[i-1].noVideo
1020
+ })
1021
+ }
1232
1022
  }
1233
1023
  console.log(list)
1234
1024
  this.state.listVideoPicture = list
@@ -1349,7 +1139,7 @@ class Video extends Component {
1349
1139
  let microphoneSize = 50
1350
1140
  var img = document.getElementById("icon_huatong");
1351
1141
  var img1 = document.getElementById("icon_huatong_close");
1352
- if (this.state[this.state.listVideoPicture[i].voice]) {
1142
+ if (this.state.listVideoPicture[i].mute) {
1353
1143
  cobj.drawImage(img1, 10, 360 * (i + 1) - 60, microphoneSize, microphoneSize);
1354
1144
  } else {
1355
1145
  cobj.drawImage(img, 10, 360 * (i + 1) - 60, microphoneSize, microphoneSize);
@@ -1514,167 +1304,38 @@ class Video extends Component {
1514
1304
  // this.endSession('customerHangUp')
1515
1305
  // }
1516
1306
  // }
1517
- else if (Mival.typeId == 3002) {
1307
+ else if (Mival.typeId == 3002) { // app进入后台
1518
1308
  if (Mival.data.sessionId == this.state.sessionId) {
1519
- if (Mival.data.userId == this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId1").innerText).uid) {
1520
- this.setState({
1521
- noVideoOne: true
1522
- })
1523
- }
1524
- if (Mival.data.userId == (document.getElementById("feedId2").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId2").innerText).uid : '')) {
1525
-
1526
- this.setState({
1527
- noVideoTwo: true
1528
- })
1529
- }
1530
- if (Mival.data.userId == (document.getElementById("feedId3").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId3").innerText).uid : '')) {
1531
- this.setState({
1532
- noVideoThree: true
1533
- })
1534
-
1535
- }
1536
- if (Mival.data.userId == (document.getElementById("feedId4").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId4").innerText).uid : '')) {
1537
-
1538
- this.setState({
1539
- noVideoFour: true
1540
- })
1541
- }
1542
- if (Mival.data.userId == (document.getElementById("feedId5").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId5").innerText).uid : '')) {
1543
- this.setState({
1544
- noVideoFive: true
1545
- })
1546
-
1547
- }
1548
- if (Mival.data.userId == (document.getElementById("feedId6").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId6").innerText).uid : '')) {
1549
-
1550
- this.setState({
1551
- noVideoSix: true
1552
- })
1553
- }
1554
- if (Mival.data.userId == (document.getElementById("feedId7").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId7").innerText).uid : '')) {
1555
-
1556
- this.setState({
1557
- noVideoSeven: true
1558
- })
1559
- }
1560
- if (Mival.data.userId == (document.getElementById("feedId8").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId8").innerText).uid : '')) {
1561
- this.setState({
1562
- noVideoEight: true
1563
- })
1564
-
1565
- }
1566
- if (Mival.data.userId == (document.getElementById("feedId9").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId9").innerText).uid : '')) {
1567
-
1568
- this.setState({
1569
- noVideoNine: true
1570
- })
1571
- }
1572
- if (Mival.data.userId == (document.getElementById("feedId10").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId10").innerText).uid : '')) {
1573
- this.setState({
1574
- noVideoTen: true
1575
- })
1576
-
1577
- }
1578
- if (Mival.data.userId == (document.getElementById("feedId11").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId11").innerText).uid : '')) {
1579
-
1580
- this.setState({
1581
- noVideoEleven: true
1582
- })
1583
- }
1584
- if (Mival.data.userId == (document.getElementById("feedId12").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId12").innerText).uid : '')) {
1585
-
1586
- this.setState({
1587
- noVideoTwelve: true
1588
- })
1309
+ for(let i=1;i<=12;i++){
1310
+ if(Mival.data.userId == (document.getElementById("feedId"+i).innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId"+i).innerText).uid : '')) {
1311
+ this.state.videoList[i-1].noVideo = true
1312
+ }
1589
1313
  }
1590
- if (this.state.isPictureInPicture) {
1314
+ this.setState({
1315
+ videoList: this.state.videoList
1316
+ }, ()=>{
1591
1317
  this.pictureInPicture('Refresh')
1592
- }
1593
-
1318
+ })
1594
1319
  }
1595
1320
  }
1596
- else if (Mival.typeId == 3003) {
1321
+ else if (Mival.typeId == 3003) { // app进入前台
1597
1322
  if (Mival.data.sessionId == this.state.sessionId) {
1598
- if (Mival.data.userId == this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId1").innerText).uid) {
1599
- this.setState({
1600
- noVideoOne: false
1601
- })
1602
- }
1603
- if (Mival.data.userId == (document.getElementById("feedId2").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId2").innerText).uid : '')) {
1604
-
1605
- this.setState({
1606
- noVideoTwo: false
1607
- })
1608
- }
1609
- if (Mival.data.userId == (document.getElementById("feedId3").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId3").innerText).uid : '')) {
1610
- this.setState({
1611
- noVideoThree: false
1612
- })
1613
-
1614
- }
1615
- if (Mival.data.userId == (document.getElementById("feedId4").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId4").innerText).uid : '')) {
1616
-
1617
- this.setState({
1618
- noVideoFour: false
1619
- })
1620
- }
1621
- if (Mival.data.userId == (document.getElementById("feedId5").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId5").innerText).uid : '')) {
1622
- this.setState({
1623
- noVideoFive: false
1624
- })
1625
-
1626
- }
1627
- if (Mival.data.userId == (document.getElementById("feedId6").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId6").innerText).uid : '')) {
1628
-
1629
- this.setState({
1630
- noVideoSix: false
1631
- })
1632
- }
1633
- if (Mival.data.userId == (document.getElementById("feedId7").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId7").innerText).uid : '')) {
1634
-
1635
- this.setState({
1636
- noVideoSeven: false
1637
- })
1638
- }
1639
- if (Mival.data.userId == (document.getElementById("feedId8").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId8").innerText).uid : '')) {
1640
- this.setState({
1641
- noVideoEight: false
1642
- })
1643
-
1644
- }
1645
- if (Mival.data.userId == (document.getElementById("feedId9").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId9").innerText).uid : '')) {
1646
-
1647
- this.setState({
1648
- noVideoNine: false
1649
- })
1650
- }
1651
- if (Mival.data.userId == (document.getElementById("feedId10").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId10").innerText).uid : '')) {
1652
- this.setState({
1653
- noVideoTen: false
1654
- })
1655
-
1656
- }
1657
- if (Mival.data.userId == (document.getElementById("feedId11").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId11").innerText).uid : '')) {
1658
-
1659
- this.setState({
1660
- noVideoEleven: false
1661
- })
1662
- }
1663
- if (Mival.data.userId == (document.getElementById("feedId12").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId12").innerText).uid : '')) {
1664
-
1665
- this.setState({
1666
- noVideoTwelve: false
1667
- })
1323
+ for(let i=1;i<=12;i++){
1324
+ if(Mival.data.userId == (document.getElementById("feedId"+i).innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId"+i).innerText).uid : '')) {
1325
+ this.state.videoList[i-1].noVideo = false
1326
+ }
1668
1327
  }
1669
- if (this.state.isPictureInPicture) {
1328
+ this.setState({
1329
+ videoList: this.state.videoList
1330
+ }, ()=>{
1670
1331
  this.pictureInPicture('Refresh')
1671
- }
1332
+ })
1672
1333
  }
1673
1334
  }
1674
1335
  else if (Mival.typeId == 1220) {
1675
1336
  // 一炒多的图片 1214
1676
1337
  if (Mival.sessionId == this.state.sessionId) {
1677
- this.saveLog('imgCallback success' + Mival.data.type)
1338
+ this.saveLog('imgCallback success, typeId=1220, type=' + Mival.data.type)
1678
1339
  this.tabTitlesClick('customerScreen', 'delect')
1679
1340
  this.props.imgCallback({
1680
1341
  type: Mival.data.type + '',
@@ -1685,11 +1346,12 @@ class Video extends Component {
1685
1346
  }
1686
1347
  } else if (Mival.typeId == 1321) {
1687
1348
  this.getBase64Image(Mival.fileName)
1349
+ this.saveLog('signCallback success, typeId=1321, fileName=' + Mival.fileName)
1688
1350
  } else if (Mival.typeId == 1216) {
1689
1351
  // 签字回调 1213
1690
1352
  if (Mival.sessionId == this.state.sessionId) {
1691
1353
  this.tabTitlesClick('customerScreen', 'delect')
1692
- this.saveLog('signatureCallback success')
1354
+ this.saveLog('signatureCallback success, typeId=1216,')
1693
1355
  this.props.signatureCallback({
1694
1356
  errorType: 0
1695
1357
  })
@@ -1699,6 +1361,7 @@ class Video extends Component {
1699
1361
  // 1-开启,2-关闭
1700
1362
  if (Mival.type == 1) {
1701
1363
  this.switchExternal()
1364
+ this.saveLog('whiteboard start, typeId=1218,')
1702
1365
  } else if (Mival.type == 2) {
1703
1366
  if (streamShare) {
1704
1367
  streamShare.getTracks().forEach(track => track.stop());
@@ -1717,174 +1380,35 @@ class Video extends Component {
1717
1380
  isWhiteboard: false
1718
1381
  })
1719
1382
  }
1383
+ this.saveLog('whiteboard close, typeId=1218,')
1720
1384
  }
1721
1385
 
1722
1386
  }
1723
1387
 
1724
1388
  } else if (Mival.typeId == 3100) {
1725
- if (Mival.data.sessionId == this.state.sessionId) {
1726
- muteJson.set(Mival.data.userId, JSON.stringify(Mival))
1727
- if (Mival.data.userId == this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId1").innerText).uid) {
1728
- muteJson.delete(Mival.data.userId)
1729
- if (Mival.muteStatus == 0) {
1730
- this.setState({
1731
- voiceVideoOne: false
1732
- })
1733
- } else if (Mival.muteStatus == 1) {
1734
- this.setState({
1735
- voiceVideoOne: true
1736
- })
1737
- }
1738
-
1739
- }
1740
- if (Mival.data.userId == (document.getElementById("feedId2").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId2").innerText).uid : '')) {
1741
- muteJson.delete(Mival.data.userId)
1742
- if (Mival.muteStatus == 0) {
1743
- this.setState({
1744
- voiceVideoTwo: false
1745
- })
1746
- } else if (Mival.muteStatus == 1) {
1747
- this.setState({
1748
- voiceVideoTwo: true
1749
- })
1750
- }
1751
-
1752
- }
1753
- if (Mival.data.userId == (document.getElementById("feedId3").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId3").innerText).uid : '')) {
1754
- muteJson.delete(Mival.data.userId)
1755
- if (Mival.muteStatus == 0) {
1756
- this.setState({
1757
- voiceVideoThree: false
1758
- })
1759
- } else if (Mival.muteStatus == 1) {
1760
- this.setState({
1761
- voiceVideoThree: true
1762
- })
1763
- }
1764
-
1765
- }
1766
- if (Mival.data.userId == (document.getElementById("feedId4").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId4").innerText).uid : '')) {
1767
- muteJson.delete(Mival.data.userId)
1768
- if (Mival.muteStatus == 0) {
1769
- this.setState({
1770
- voiceVideoFour: false
1771
- })
1772
- } else if (Mival.muteStatus == 1) {
1773
- this.setState({
1774
- voiceVideoFour: true
1775
- })
1776
- }
1777
-
1778
- }
1779
- if (Mival.data.userId == (document.getElementById("feedId5").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId5").innerText).uid : '')) {
1780
- muteJson.delete(Mival.data.userId)
1781
- if (Mival.muteStatus == 0) {
1782
- this.setState({
1783
- voiceVideoFive: false
1784
- })
1785
- } else if (Mival.muteStatus == 1) {
1786
- this.setState({
1787
- voiceVideoFive: true
1788
- })
1789
- }
1790
-
1791
- }
1792
- if (Mival.data.userId == (document.getElementById("feedId6").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId6").innerText).uid : '')) {
1793
- muteJson.delete(Mival.data.userId)
1794
- if (Mival.muteStatus == 0) {
1795
- this.setState({
1796
- voiceVideoSix: false
1797
- })
1798
- } else if (Mival.muteStatus == 1) {
1799
- this.setState({
1800
- voiceVideoSix: true
1801
- })
1802
- }
1803
-
1804
- }
1805
-
1806
- if (Mival.data.userId == (document.getElementById("feedId7").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId7").innerText).uid : '')) {
1807
- muteJson.delete(Mival.data.userId)
1808
- if (Mival.muteStatus == 0) {
1809
- this.setState({
1810
- voiceVideoSeven: false
1811
- })
1812
- } else if (Mival.muteStatus == 1) {
1813
- this.setState({
1814
- voiceVideoSeven: true
1815
- })
1816
- }
1817
-
1818
- }
1819
- if (Mival.data.userId == (document.getElementById("feedId8").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId8").innerText).uid : '')) {
1820
- muteJson.delete(Mival.data.userId)
1821
- if (Mival.muteStatus == 0) {
1822
- this.setState({
1823
- voiceVideoEight: false
1824
- })
1825
- } else if (Mival.muteStatus == 1) {
1826
- this.setState({
1827
- voiceVideoEight: true
1828
- })
1829
- }
1830
-
1831
- }
1832
- if (Mival.data.userId == (document.getElementById("feedId9").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId9").innerText).uid : '')) {
1833
- muteJson.delete(Mival.data.userId)
1834
- if (Mival.muteStatus == 0) {
1835
- this.setState({
1836
- voiceVideoNine: false
1837
- })
1838
- } else if (Mival.muteStatus == 1) {
1839
- this.setState({
1840
- voiceVideoNine: true
1841
- })
1842
- }
1843
-
1844
- }
1845
- if (Mival.data.userId == (document.getElementById("feedId10").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId10").innerText).uid : '')) {
1846
- muteJson.delete(Mival.data.userId)
1847
- if (Mival.muteStatus == 0) {
1848
- this.setState({
1849
- voiceVideoTen: false
1850
- })
1851
- } else if (Mival.muteStatus == 1) {
1852
- this.setState({
1853
- voiceVideoTen: true
1854
- })
1855
- }
1856
-
1857
- }
1858
- if (Mival.data.userId == (document.getElementById("feedId11").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId11").innerText).uid : '')) {
1859
- muteJson.delete(Mival.data.userId)
1860
- if (Mival.muteStatus == 0) {
1861
- this.setState({
1862
- voiceVideoEleven: false
1863
- })
1864
- } else if (Mival.muteStatus == 1) {
1865
- this.setState({
1866
- voiceVideoEleven: true
1867
- })
1868
- }
1869
-
1870
- }
1871
- if (Mival.data.userId == (document.getElementById("feedId12").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId12").innerText).uid : '')) {
1872
- muteJson.delete(Mival.data.userId)
1873
- if (Mival.muteStatus == 0) {
1874
- this.setState({
1875
- voiceVideoTwelve: false
1876
- })
1877
- } else if (Mival.muteStatus == 1) {
1878
- this.setState({
1879
- voiceVideoTwelve: true
1880
- })
1881
- }
1882
-
1389
+ if(Mival.data.sessionId == this.state.sessionId) {
1390
+ muteJson.set(Mival.data.userId, JSON.stringify(Mival))
1391
+ for(let i=1;i<=12;i++){
1392
+ if(Mival.data.userId == (document.getElementById("feedId"+i).innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId"+i).innerText).uid : '')) {
1393
+ muteJson.delete(Mival.data.userId)
1394
+ if(Mival.muteStatus == 0) {
1395
+ this.state.videoList[i-1].mute = false
1396
+ this.setState({
1397
+ videoList: this.state.videoList
1398
+ })
1399
+ } else if(Mival.muteStatus == 1) {
1400
+ this.state.videoList[i-1].mute = true
1401
+ this.setState({
1402
+ videoList: this.state.videoList
1403
+ })
1404
+ }
1405
+
1406
+ }
1883
1407
  }
1884
1408
  }
1885
1409
  } else if (Mival.typeId == 121305) {
1886
1410
  if (Mival.sessionId == this.state.sessionId) {
1887
- this.saveLog('signatureCallback fail')
1411
+ this.saveLog('signatureCallback fail, typeId=121305, ')
1888
1412
  this.props.signatureCallback({
1889
1413
  errorType: -1
1890
1414
  })
@@ -1892,7 +1416,7 @@ class Video extends Component {
1892
1416
  } else if (Mival.typeId == 121405) {
1893
1417
  if (Mival.sessionId == this.state.sessionId) {
1894
1418
  console.log('imgCallback')
1895
- this.saveLog('imgCallback fail')
1419
+ this.saveLog('imgCallback fail, typeId=121405, ')
1896
1420
  this.props.imgCallback({
1897
1421
  type: '',
1898
1422
  file: '',
@@ -1902,72 +1426,60 @@ class Video extends Component {
1902
1426
  } else if (Mival.typeId == 4001) {
1903
1427
  // 手机端停止投屏
1904
1428
  this.tabTitlesClick('customerScreen', 'delect')
1429
+ this.saveLog('app stop sharing screen, typeId=4001, ')
1905
1430
 
1906
- } else if (Mival.typeId == 1401) {
1907
- if (Mival.sessionId == this.state.sessionId) {
1908
- if (Mival.userId == this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId1").innerText).uid) {
1909
- this.setState({
1910
- videoOneName: Mival.name
1911
- })
1912
-
1913
- }
1914
- if (Mival.userId == (document.getElementById("feedId2").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId2").innerText).uid : '')) {
1915
- this.setState({
1916
- videoTwoName: Mival.name
1917
- })
1918
- }
1919
- if (Mival.userId == (document.getElementById("feedId3").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId3").innerText).uid : '')) {
1920
- this.setState({
1921
- videoThreeName: Mival.name
1922
- })
1923
- }
1924
- if (Mival.userId == (document.getElementById("feedId4").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId4").innerText).uid : '')) {
1925
- this.setState({
1926
- videoFourName: Mival.name
1927
- })
1928
- }
1929
- if (Mival.userId == (document.getElementById("feedId5").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId5").innerText).uid : '')) {
1930
- this.setState({
1931
- videoFiveName: Mival.name
1932
- })
1933
- }
1934
- if (Mival.userId == (document.getElementById("feedId6").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId6").innerText).uid : '')) {
1935
- this.setState({
1936
- videoSixName: Mival.name
1937
- })
1938
- }
1939
-
1940
- if (Mival.userId == (document.getElementById("feedId7").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId7").innerText).uid : '')) {
1941
- this.setState({
1942
- videoSevenName: Mival.name
1943
- })
1944
- }
1945
- if (Mival.userId == (document.getElementById("feedId8").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId8").innerText).uid : '')) {
1946
- this.setState({
1947
- videoEightName: Mival.name
1948
- })
1949
- }
1950
- if (Mival.userId == (document.getElementById("feedId9").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId9").innerText).uid : '')) {
1951
- this.setState({
1952
- videoNineName: Mival.name
1953
- })
1954
- }
1955
- if (Mival.userId == (document.getElementById("feedId10").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId10").innerText).uid : '')) {
1956
- this.setState({
1957
- videoTenName: Mival.name
1958
- })
1959
- }
1960
- if (Mival.userId == (document.getElementById("feedId11").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId11").innerText).uid : '')) {
1431
+ } else if (Mival.typeId == 4004) {
1432
+ // 线下demo静音处理
1433
+ if (Mival.data.sessionId == this.state.sessionId && this.isFileSuccuse()) {
1434
+ if (!this.state.voiceStatue) {
1435
+ // 静音本地
1961
1436
  this.setState({
1962
- videoElevenName: Mival.name
1437
+ voiceStatue: true,
1438
+ voiceImg: voiceImgCloe,
1439
+ voiceName: '解除静音'
1440
+ });
1441
+ let sid = document.getElementById('publish_video1').name || document.getElementById('publish_streamId1').name;
1442
+ this.test_controller.SetLocalAudioEnable(0, parseInt(sid, 10));
1443
+ callNimIM('sendCustomCmdMsg', {
1444
+ customId: this.state.imRoomId,
1445
+ content: JSON.stringify({
1446
+ 'typeId': 1013,
1447
+ 'muteStatus': 1,
1448
+ 'data': {
1449
+ 'sessionId': this.state.sessionId,
1450
+ 'userId': this.props.tellerAccount
1451
+ }
1452
+ })
1453
+ }, function (code, message, data) {
1454
+ // console.log(data)
1963
1455
  })
1964
1456
  }
1965
- if (Mival.userId == (document.getElementById("feedId12").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId12").innerText).uid : '')) {
1966
- this.setState({
1967
- videoTwelveName: Mival.name
1968
- })
1457
+ document.getElementById('audio1').muted = true
1458
+ console.log('音频流静音')
1459
+ console.log(document.getElementById('audio1').muted)
1460
+ setTimeout(() => {
1461
+ callNimIM('sendCustomCmdMsg', {
1462
+ customId: this.state.imRoomId,
1463
+ content: JSON.stringify({
1464
+ 'typeId': 1223,
1465
+ 'state': 1, // app解除静音
1466
+ 'sessionId': this.state.sessionId,
1467
+ 'userId': Mival.data.userId //this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById('feedId1').innerText).uid
1468
+ })
1469
+ });
1470
+ }, 1000);
1471
+ }
1472
+ } else if (Mival.typeId == 1401) {
1473
+ // 用户修改名字
1474
+ if (Mival.sessionId == this.state.sessionId) {
1475
+ for(let i=1;i<=12;i++){
1476
+ if(Mival.userId == (document.getElementById("feedId"+i).innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId"+i).innerText).uid : '')) {
1477
+ this.state.videoList[i-1].videoName = Mival.name
1478
+ }
1969
1479
  }
1970
-
1480
+ this.setState({
1481
+ videoList: this.state.videoList
1482
+ })
1971
1483
  }
1972
1484
  }
1973
1485
  };
@@ -2124,7 +1636,7 @@ class Video extends Component {
2124
1636
  // 获取设备失败
2125
1637
  this.test_controller.OnGetDevicesFailed = (code, msg) => {
2126
1638
  console.log('获取设备失败', code, msg)
2127
- this.saveLog('Failed to get device')
1639
+ this.saveLog('Failed to get device, code='+code)
2128
1640
  this.state.sessionType = false
2129
1641
  this.messageClick('获取设备失败,请检查摄像头设备是否可用或是否禁用摄像头', 'error')
2130
1642
  this.roomCallBack(2, '获取设备失败', 1)
@@ -2165,6 +1677,7 @@ class Video extends Component {
2165
1677
  } else {
2166
1678
  this.test_controller.CreateRoom()
2167
1679
  }
1680
+ this.saveLog('InitRoomConfig successfully')
2168
1681
 
2169
1682
  };
2170
1683
  // 创建房间成功
@@ -2174,6 +1687,7 @@ class Video extends Component {
2174
1687
  this.state.channelId = room_id,
2175
1688
  this.state.rtoken = rtoken
2176
1689
  this.createRoom()
1690
+ this.saveLog('RM mrtc create room successfully, room_id=' + room_id)
2177
1691
  };
2178
1692
  // 创建房间失败
2179
1693
  this.test_controller.OnCreateRoomFailed = (err_code, err_msg) => {
@@ -2185,10 +1699,12 @@ class Video extends Component {
2185
1699
  // 初始化⾳视频成功
2186
1700
  this.test_controller.OnMediaCallSucc = (sid) => {
2187
1701
  console.log('初始化⾳视频成功', sid)
1702
+ this.saveLog('OnMediaCallSucc:' + sid)
2188
1703
  };
2189
1704
  // 初始化音视频失败
2190
1705
  this.test_controller.OnMediaCallFail = (err_code, err_msg) => {
2191
1706
  console.log('初始化音视频失败', err_code, err_msg)
1707
+ this.saveLog('OnMediaCallFail, code=' + err_code)
2192
1708
  };
2193
1709
  // 音视频关闭通知
2194
1710
  this.test_controller.OnMediaClose = (code, sid) => {
@@ -2219,10 +1735,11 @@ class Video extends Component {
2219
1735
  publish_config.publish_tag = 'tag1'
2220
1736
  this.test_controller.Publish(publish_config)
2221
1737
  this.roomCallBack(1, '', 0)
1738
+ this.saveLog('mrtc join room success')
2222
1739
  };
2223
1740
  // 加入房间失败
2224
1741
  this.test_controller.OnJoinRoomFailed = (err_code, err_msg) => {
2225
- this.saveLog('Join room failed,' + err_code)
1742
+ this.saveLog('mrtc join room failed,' + err_code)
2226
1743
  console.log('加入房间失败', err_code, err_msg)
2227
1744
  // this.setState({
2228
1745
  // sessionType: false,
@@ -2254,12 +1771,14 @@ class Video extends Component {
2254
1771
  documentError: '',
2255
1772
  isModalVisibleCustomer: false,
2256
1773
  })
1774
+ this.saveLog('mrtc OnSendTextMsgSucc:' + msgId)
2257
1775
  }
2258
1776
  this.test_controller.OnSendTextMsgFailed = (msgId, code, msg) => {
2259
1777
  console.log('发送失败', msgId, code, msg)
2260
1778
  this.setState({
2261
1779
  documentError: '推送授权白板失败,请重试'
2262
1780
  })
1781
+ this.saveLog('mrtc OnSendTextMsgFail:' + msgId +', code=' + code + ',msg=' + msg)
2263
1782
  }
2264
1783
  this.test_controller.OnReceiveTextMsg = (uid, msg) => {
2265
1784
  console.log('收到手机端消息', uid, msg, JSON.parse(msg).typeId, JSON.parse(msg).data.sessionId, this.state.sessionId)
@@ -2269,6 +1788,49 @@ class Video extends Component {
2269
1788
  this.customerFaceClick(this.state.customerList[this.state.customerSelect - 1])
2270
1789
  }
2271
1790
  }
1791
+ // 线下demo静音处理
1792
+ if (JSON.parse(msg).typeId == 4004 && this.state.sessionId == JSON.parse(msg).data.sessionId) {
1793
+ if (this.isFileSuccuse()) {
1794
+ if (!this.state.voiceStatue) {
1795
+ // 静音本地
1796
+ this.setState({
1797
+ voiceStatue: true,
1798
+ voiceImg: voiceImgCloe,
1799
+ voiceName: '解除静音'
1800
+ });
1801
+ let sid = document.getElementById('publish_video1').name || document.getElementById('publish_streamId1').name;
1802
+ this.test_controller.SetLocalAudioEnable(0, parseInt(sid, 10));
1803
+ callNimIM('sendCustomCmdMsg', {
1804
+ customId: this.state.imRoomId,
1805
+ content: JSON.stringify({
1806
+ 'typeId': 1013,
1807
+ 'muteStatus': 1,
1808
+ 'data': {
1809
+ 'sessionId': this.state.sessionId,
1810
+ 'userId': this.props.tellerAccount
1811
+ }
1812
+ })
1813
+ }, function (code, message, data) {
1814
+ // console.log(data)
1815
+ })
1816
+ }
1817
+ document.getElementById('audio1').muted = true
1818
+ console.log('音频流静音')
1819
+ console.log(document.getElementById('audio1').muted)
1820
+ setTimeout(() => {
1821
+ callNimIM('sendCustomCmdMsg', {
1822
+ customId: this.state.imRoomId,
1823
+ content: JSON.stringify({
1824
+ 'typeId': 1223,
1825
+ 'state': 1, // app解除静音
1826
+ 'sessionId': this.state.sessionId,
1827
+ 'userId': uid //this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById('feedId1').innerText).uid
1828
+ })
1829
+ });
1830
+ }, 1000);
1831
+ }
1832
+ }
1833
+ this.saveLog('mrtc OnReceiveTextMsg info:' + msg)
2272
1834
  }
2273
1835
  this.test_controller.StreamFilterHandler = async (publish_tag, stream, stream_type, publish_device, media_type) => {
2274
1836
  console.log(`stream processed by client, publish_device=${publish_device}, media_type=${media_type}, publish_tag=${publish_tag},stream_type=${stream_type}`);
@@ -2414,204 +1976,62 @@ class Video extends Component {
2414
1976
  },
2415
1977
  1000
2416
1978
  );
2417
- } else {
2418
- var box = document.getElementById("whiteboardDIV");
2419
- var box1 = document.getElementById("operate")
2420
- var height = box1 ? box1.offsetHeight : 40
2421
- var width = this.state.whiteboardHeight * document.getElementById("video20").videoWidth / document.getElementById("video20").videoHeight
2422
- if (box) { //此处在加一层判断,更加严密,如果box存在的情况下获取
2423
- this.setState({
2424
- widthVideo: width,
2425
- whiteboardTop: box.getBoundingClientRect().top - height,
2426
- whiteboardLeft: box.getBoundingClientRect().left,
2427
- leftVideo: (box.offsetWidth - width) / 2 + box.getBoundingClientRect().left
2428
- })
2429
- console.log('whiteboardVideo20', this.state.whiteboardTop, this.state.whiteboardLeft, this.state.widthVideo, this.state.leftVideo)
2430
-
2431
- }
2432
- }
2433
- };
2434
- // 发布媒体流失败
2435
- this.test_controller.OnPublishFailed = (sid, err_code, err_msg) => {
2436
- this.saveLog('发布失败' + err_code)
2437
- console.log('Publishing media stream failed,', sid, err_code, err_msg)
2438
- if (sid == document.getElementById('publish_video1').name) {
2439
- this.state.sessionType = false
2440
- this.roomCallBack(2, '发布失败', 4)
2441
- } else {
2442
- this.messageClick('投屏失败请重新投屏', 'error')
2443
- }
2444
-
2445
- };
2446
- // 订阅媒体流成功
2447
- this.test_controller.OnSubscribeSucc = (feed, sid) => {
2448
- console.log('订阅媒体流成功', feed, sid);
2449
-
2450
- this.appGetUsername(sid)
2451
- console.log(muteJson, muteJson.size)
2452
- if (muteJson.size > 0) {
2453
- let userId = ''
2454
- if (muteJson.get(this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId1").innerText).uid)) {
2455
- userId = this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId1").innerText).uid
2456
- if (JSON.parse(muteJson.get(userId)).muteStatus == 0) {
2457
- this.setState({
2458
- voiceVideoOne: false
2459
- })
2460
- } else if (JSON.parse(muteJson.get(userId)).muteStatus == 1) {
2461
- this.setState({
2462
- voiceVideoOne: true
2463
- })
2464
- }
2465
- muteJson.delete(userId)
2466
- }
2467
- if (muteJson.get(document.getElementById("feedId2").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId2").innerText).uid : '')) {
2468
- userId = document.getElementById("feedId2").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId2").innerText).uid : ''
2469
- if (JSON.parse(muteJson.get(userId)).muteStatus == 0) {
2470
- this.setState({
2471
- voiceVideoTwo: false
2472
- })
2473
- } else if (JSON.parse(muteJson.get(userId)).muteStatus == 1) {
2474
- this.setState({
2475
- voiceVideoTwo: true
2476
- })
2477
- }
2478
- muteJson.delete(userId)
2479
- }
2480
- if (muteJson.get(document.getElementById("feedId3").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId3").innerText).uid : '')) {
2481
- userId = document.getElementById("feedId3").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId3").innerText).uid : ''
2482
- if (JSON.parse(muteJson.get(userId)).muteStatus == 0) {
2483
- this.setState({
2484
- voiceVideoThree: false
2485
- })
2486
- } else if (JSON.parse(muteJson.get(userId)).muteStatus == 1) {
2487
- this.setState({
2488
- voiceVideoThree: true
2489
- })
2490
- }
2491
- muteJson.delete(userId)
2492
- }
2493
- if (muteJson.get(document.getElementById("feedId4").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId4").innerText).uid : '')) {
2494
- userId = document.getElementById("feedId4").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId4").innerText).uid : ''
2495
- if (JSON.parse(muteJson.get(userId)).muteStatus == 0) {
2496
- this.setState({
2497
- voiceVideoFour: false
2498
- })
2499
- } else if (JSON.parse(muteJson.get(userId)).muteStatus == 1) {
2500
- this.setState({
2501
- voiceVideoFour: true
2502
- })
2503
- }
2504
- muteJson.delete(userId)
2505
- }
2506
- if (muteJson.get(document.getElementById("feedId5").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId5").innerText).uid : '')) {
2507
- userId = document.getElementById("feedId5").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId5").innerText).uid : ''
2508
- if (JSON.parse(muteJson.get(userId)).muteStatus == 0) {
2509
- this.setState({
2510
- voiceVideoFive: false
2511
- })
2512
- } else if (JSON.parse(muteJson.get(userId)).muteStatus == 1) {
2513
- this.setState({
2514
- voiceVideoFive: true
2515
- })
2516
- }
2517
- muteJson.delete(userId)
2518
- }
2519
- if (muteJson.get(document.getElementById("feedId6").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId6").innerText).uid : '')) {
2520
- userId = document.getElementById("feedId6").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId6").innerText).uid : ''
2521
- if (JSON.parse(muteJson.get(userId)).muteStatus == 0) {
2522
- this.setState({
2523
- voiceVideoSix: false
2524
- })
2525
- } else if (JSON.parse(muteJson.get(userId)).muteStatus == 1) {
2526
- this.setState({
2527
- voiceVideoSix: true
2528
- })
2529
- }
2530
- muteJson.delete(userId)
2531
- }
2532
- if (muteJson.get(document.getElementById("feedId7").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId7").innerText).uid : '')) {
2533
- userId = document.getElementById("feedId7").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId7").innerText).uid : ''
2534
- if (JSON.parse(muteJson.get(userId)).muteStatus == 0) {
2535
- this.setState({
2536
- voiceVideoSeven: false
2537
- })
2538
- } else if (JSON.parse(muteJson.get(userId)).muteStatus == 1) {
2539
- this.setState({
2540
- voiceVideoSeven: true
2541
- })
2542
- }
2543
- muteJson.delete(userId)
2544
- }
2545
- if (muteJson.get(document.getElementById("feedId8").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId8").innerText).uid : '')) {
2546
- userId = document.getElementById("feedId8").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId8").innerText).uid : ''
2547
-
2548
- if (JSON.parse(muteJson.get(userId)).muteStatus == 0) {
2549
- this.setState({
2550
- voiceVideoEight: false
2551
- })
2552
- } else if (JSON.parse(muteJson.get(userId)).muteStatus == 1) {
2553
- this.setState({
2554
- voiceVideoEight: true
2555
- })
2556
- }
2557
- muteJson.delete(userId)
2558
- }
2559
- if (muteJson.get(document.getElementById("feedId9").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId9").innerText).uid : '')) {
2560
- userId = document.getElementById("feedId9").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId9").innerText).uid : ''
2561
-
2562
- if (JSON.parse(muteJson.get(userId)).muteStatus == 0) {
2563
- this.setState({
2564
- voiceVideoNine: false
2565
- })
2566
- } else if (JSON.parse(muteJson.get(userId)).muteStatus == 1) {
2567
- this.setState({
2568
- voiceVideoNine: true
2569
- })
2570
- }
2571
- muteJson.delete(userId)
2572
- }
2573
- if (muteJson.get(document.getElementById("feedId10").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId10").innerText).uid : '')) {
2574
- userId = document.getElementById("feedId10").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId10").innerText).uid : ''
1979
+ } else {
1980
+ var box = document.getElementById("whiteboardDIV");
1981
+ var box1 = document.getElementById("operate")
1982
+ var height = box1 ? box1.offsetHeight : 40
1983
+ var width = this.state.whiteboardHeight * document.getElementById("video20").videoWidth / document.getElementById("video20").videoHeight
1984
+ if (box) { //此处在加一层判断,更加严密,如果box存在的情况下获取
1985
+ this.setState({
1986
+ widthVideo: width,
1987
+ whiteboardTop: box.getBoundingClientRect().top - height,
1988
+ whiteboardLeft: box.getBoundingClientRect().left,
1989
+ leftVideo: (box.offsetWidth - width) / 2 + box.getBoundingClientRect().left
1990
+ })
1991
+ console.log('whiteboardVideo20', this.state.whiteboardTop, this.state.whiteboardLeft, this.state.widthVideo, this.state.leftVideo)
2575
1992
 
2576
- if (JSON.parse(muteJson.get(userId)).muteStatus == 0) {
2577
- this.setState({
2578
- voiceVideoTen: false
2579
- })
2580
- } else if (JSON.parse(muteJson.get(userId)).muteStatus == 1) {
2581
- this.setState({
2582
- voiceVideoTen: true
2583
- })
2584
- }
2585
- muteJson.delete(userId)
2586
1993
  }
2587
- if (muteJson.get(document.getElementById("feedId11").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId11").innerText).uid : '')) {
2588
- userId = document.getElementById("feedId11").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId11").innerText).uid : ''
1994
+ }
1995
+ };
1996
+ // 发布媒体流失败
1997
+ this.test_controller.OnPublishFailed = (sid, err_code, err_msg) => {
1998
+ this.saveLog('mrtc OnPublishFailed 发布失败, code=' + err_code)
1999
+ console.log('Publishing media stream failed,', sid, err_code, err_msg)
2000
+ if (sid == document.getElementById('publish_video1').name) {
2001
+ this.state.sessionType = false
2002
+ this.roomCallBack(2, '发布失败', 4)
2003
+ } else {
2004
+ this.messageClick('投屏失败请重新投屏', 'error')
2005
+ }
2589
2006
 
2590
- if (JSON.parse(muteJson.get(userId)).muteStatus == 0) {
2591
- this.setState({
2592
- voiceVideoEleven: false
2593
- })
2594
- } else if (JSON.parse(muteJson.get(userId)).muteStatus == 1) {
2595
- this.setState({
2596
- voiceVideoEleven: true
2597
- })
2598
- }
2599
- muteJson.delete(userId)
2600
- }
2601
- if (muteJson.get(document.getElementById("feedId12").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId12").innerText).uid : '')) {
2602
- userId = document.getElementById("feedId12").innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId12").innerText).uid : ''
2603
- if (JSON.parse(muteJson.get(userId)).muteStatus == 0) {
2604
- this.setState({
2605
- voiceVideoTwelve: false
2606
- })
2607
- } else if (JSON.parse(muteJson.get(userId)).muteStatus == 1) {
2608
- this.setState({
2609
- voiceVideoTwelve: true
2610
- })
2611
- }
2612
- muteJson.delete(userId)
2007
+ };
2008
+ // 订阅媒体流成功
2009
+ this.test_controller.OnSubscribeSucc = (feed, sid) => {
2010
+ console.log('订阅媒体流成功', feed, sid);
2011
+
2012
+ this.appGetUsername(sid)
2013
+ console.log(muteJson, muteJson.size)
2014
+ if(muteJson.size > 0) {
2015
+ for(let i=1;i<=12;i++){
2016
+ const userId = document.getElementById("feedId"+i).innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId"+i).innerText).uid : ''
2017
+ console.log(muteJson.get(userId))
2018
+ if(muteJson.get(userId)) {
2019
+
2020
+ if(JSON.parse(muteJson.get(userId)).muteStatus == 0) {
2021
+ this.state.videoList[i-1].mute = false
2022
+ this.setState({
2023
+ videoList: this.state.videoList
2024
+ })
2025
+ } else if(JSON.parse(muteJson.get(userId)).muteStatus == 1) {
2026
+ this.state.videoList[i-1].mute = true
2027
+ this.setState({
2028
+ videoList: this.state.videoList
2029
+ })
2030
+ }
2031
+ muteJson.delete(userId)
2032
+ }
2613
2033
  }
2614
- console.log(muteJson, muteJson.length)
2034
+ console.log(muteJson,muteJson.length)
2615
2035
  }
2616
2036
  };
2617
2037
  // 订阅媒体流失败
@@ -2672,120 +2092,23 @@ class Video extends Component {
2672
2092
  }, 'add'
2673
2093
  )
2674
2094
  } else {
2675
- if (!document.getElementById('video1').name) {
2676
- config_param = {
2677
- subscribe_video_id: 'video1',
2678
- subscribe_audio_id: 'audio1',
2679
- subscribe_streamId_id: 'subscribe_streamId1',
2680
- feedId_id: 'feedId1',
2681
- feedId: itemOne.feedId
2682
- }
2683
- }
2684
- else if (!document.getElementById('video2').name) {
2685
- config_param = {
2686
- subscribe_video_id: 'video2',
2687
- subscribe_audio_id: 'audio2',
2688
- subscribe_streamId_id: 'subscribe_streamId2',
2689
- feedId_id: 'feedId2',
2690
- feedId: itemOne.feedId
2691
- }
2692
- }
2693
- else if (!document.getElementById('video3').name) {
2694
- config_param = {
2695
- subscribe_video_id: 'video3',
2696
- subscribe_audio_id: 'audio3',
2697
- subscribe_streamId_id: 'subscribe_streamId3',
2698
- feedId_id: 'feedId3',
2699
- feedId: itemOne.feedId
2700
- }
2701
- }
2702
- else if (!document.getElementById('video4').name) {
2703
- config_param = {
2704
- subscribe_video_id: 'video4',
2705
- subscribe_audio_id: 'audio4',
2706
- subscribe_streamId_id: 'subscribe_streamId4',
2707
- feedId_id: 'feedId4',
2708
- feedId: itemOne.feedId
2709
- }
2710
- }
2711
- else if (!document.getElementById('video5').name) {
2712
- config_param = {
2713
- subscribe_video_id: 'video5',
2714
- subscribe_audio_id: 'audio5',
2715
- subscribe_streamId_id: 'subscribe_streamId5',
2716
- feedId_id: 'feedId5',
2717
- feedId: itemOne.feedId
2718
- }
2719
- }
2720
- else if (!document.getElementById('video6').name) {
2721
- config_param = {
2722
- subscribe_video_id: 'video6',
2723
- subscribe_audio_id: 'audio6',
2724
- subscribe_streamId_id: 'subscribe_streamId6',
2725
- feedId_id: 'feedId6',
2726
- feedId: itemOne.feedId
2727
- }
2728
- }
2729
-
2730
- else if (!document.getElementById('video7').name) {
2731
- config_param = {
2732
- subscribe_video_id: 'video7',
2733
- subscribe_audio_id: 'audio7',
2734
- subscribe_streamId_id: 'subscribe_streamId7',
2735
- feedId_id: 'feedId7',
2736
- feedId: itemOne.feedId
2737
- }
2738
- }
2739
- else if (!document.getElementById('video8').name) {
2740
- config_param = {
2741
- subscribe_video_id: 'video8',
2742
- subscribe_audio_id: 'audio8',
2743
- subscribe_streamId_id: 'subscribe_streamId8',
2744
- feedId_id: 'feedId8',
2745
- feedId: itemOne.feedId
2746
- }
2747
- }
2748
- else if (!document.getElementById('video9').name) {
2749
- config_param = {
2750
- subscribe_video_id: 'video9',
2751
- subscribe_audio_id: 'audio9',
2752
- subscribe_streamId_id: 'subscribe_streamId9',
2753
- feedId_id: 'feedId9',
2754
- feedId: itemOne.feedId
2755
- }
2756
- }
2757
- else if (!document.getElementById('video10').name) {
2758
- config_param = {
2759
- subscribe_video_id: 'video10',
2760
- subscribe_audio_id: 'audio10',
2761
- subscribe_streamId_id: 'subscribe_streamId10',
2762
- feedId_id: 'feedId10',
2763
- feedId: itemOne.feedId
2764
- }
2765
- }
2766
- else if (!document.getElementById('video11').name) {
2767
- config_param = {
2768
- subscribe_video_id: 'video11',
2769
- subscribe_audio_id: 'audio11',
2770
- subscribe_streamId_id: 'subscribe_streamId11',
2771
- feedId_id: 'feedId11',
2772
- feedId: itemOne.feedId
2773
- }
2774
- }
2775
- else if (!document.getElementById('video12').name) {
2776
- config_param = {
2777
- subscribe_video_id: 'video12',
2778
- subscribe_audio_id: 'audio12',
2779
- subscribe_streamId_id: 'subscribe_streamId12',
2780
- feedId_id: 'feedId12',
2781
- feedId: itemOne.feedId
2782
- }
2095
+ for (let i=1;i<=12;i++){
2096
+ if(!document.getElementById('video'+i).name) {
2097
+ config_param = {
2098
+ subscribe_video_id: 'video'+i,
2099
+ subscribe_audio_id: 'audio'+i,
2100
+ subscribe_streamId_id: 'subscribe_streamId'+i,
2101
+ feedId_id: 'feedId'+i,
2102
+ feedId: itemOne.feedId
2103
+ }
2104
+ break;
2105
+ }
2783
2106
  }
2784
2107
  }
2785
2108
  if (config_param !== undefined) {
2786
2109
  config_param.need_volume_analyser = true
2787
2110
  console.log(config_param)
2788
-
2111
+ console.log('发起订阅')
2789
2112
  this.test_controller.Subscribe(config_param)
2790
2113
 
2791
2114
  }
@@ -2797,6 +2120,7 @@ class Video extends Component {
2797
2120
  // 推送“新加⼊房间者”给与会者
2798
2121
  this.test_controller.OnNewJoinerIn = (participant) => {
2799
2122
  console.log('新加⼊房间者', participant);
2123
+ this.saveLog('mrtc someone joined room, userId=' + participant)
2800
2124
  this.state.isCustomer = true
2801
2125
  };
2802
2126
  // 推送“有新发布”给与会者
@@ -2887,113 +2211,17 @@ class Video extends Component {
2887
2211
 
2888
2212
  }
2889
2213
  } else {
2890
- if (!document.getElementById('video1').name) {
2891
- config_param = {
2892
- subscribe_video_id: 'video1',
2893
- subscribe_audio_id: 'audio1',
2894
- subscribe_streamId_id: 'subscribe_streamId1',
2895
- feedId_id: 'feedId1',
2896
- feedId: feed.feedId
2897
- }
2898
- }
2899
- else if (!document.getElementById('video2').name) {
2900
- config_param = {
2901
- subscribe_video_id: 'video2',
2902
- subscribe_audio_id: 'audio2',
2903
- subscribe_streamId_id: 'subscribe_streamId2',
2904
- feedId_id: 'feedId2',
2905
- feedId: feed.feedId
2906
- }
2907
- }
2908
- else if (!document.getElementById('video3').name) {
2909
- config_param = {
2910
- subscribe_video_id: 'video3',
2911
- subscribe_audio_id: 'audio3',
2912
- subscribe_streamId_id: 'subscribe_streamId3',
2913
- feedId_id: 'feedId3',
2914
- feedId: feed.feedId
2915
- }
2916
- }
2917
- else if (!document.getElementById('video4').name) {
2918
- config_param = {
2919
- subscribe_video_id: 'video4',
2920
- subscribe_audio_id: 'audio4',
2921
- subscribe_streamId_id: 'subscribe_streamId4',
2922
- feedId_id: 'feedId4',
2923
- feedId: feed.feedId
2924
- }
2925
- }
2926
- else if (!document.getElementById('video5').name) {
2927
- config_param = {
2928
- subscribe_video_id: 'video5',
2929
- subscribe_audio_id: 'audio5',
2930
- subscribe_streamId_id: 'subscribe_streamId5',
2931
- feedId_id: 'feedId5',
2932
- feedId: feed.feedId
2933
- }
2934
- }
2935
- else if (!document.getElementById('video6').name) {
2936
- config_param = {
2937
- subscribe_video_id: 'video6',
2938
- subscribe_audio_id: 'audio6',
2939
- subscribe_streamId_id: 'subscribe_streamId6',
2940
- feedId_id: 'feedId6',
2941
- feedId: feed.feedId
2942
- }
2943
- }
2944
- else if (!document.getElementById('video7').name) {
2945
- config_param = {
2946
- subscribe_video_id: 'video7',
2947
- subscribe_audio_id: 'audio7',
2948
- subscribe_streamId_id: 'subscribe_streamId7',
2949
- feedId_id: 'feedId7',
2950
- feedId: feed.feedId
2951
- }
2952
- }
2953
- else if (!document.getElementById('video8').name) {
2954
- config_param = {
2955
- subscribe_video_id: 'video8',
2956
- subscribe_audio_id: 'audio8',
2957
- subscribe_streamId_id: 'subscribe_streamId8',
2958
- feedId_id: 'feedId8',
2959
- feedId: feed.feedId
2960
- }
2961
- }
2962
- else if (!document.getElementById('video9').name) {
2963
- config_param = {
2964
- subscribe_video_id: 'video9',
2965
- subscribe_audio_id: 'audio9',
2966
- subscribe_streamId_id: 'subscribe_streamId9',
2967
- feedId_id: 'feedId9',
2968
- feedId: feed.feedId
2969
- }
2970
- }
2971
- else if (!document.getElementById('video10').name) {
2972
- config_param = {
2973
- subscribe_video_id: 'video10',
2974
- subscribe_audio_id: 'audio10',
2975
- subscribe_streamId_id: 'subscribe_streamId10',
2976
- feedId_id: 'feedId10',
2977
- feedId: feed.feedId
2978
- }
2979
- }
2980
- else if (!document.getElementById('video11').name) {
2981
- config_param = {
2982
- subscribe_video_id: 'video11',
2983
- subscribe_audio_id: 'audio11',
2984
- subscribe_streamId_id: 'subscribe_streamId11',
2985
- feedId_id: 'feedId11',
2986
- feedId: feed.feedId
2987
- }
2988
- }
2989
- else if (!document.getElementById('video12').name) {
2990
- config_param = {
2991
- subscribe_video_id: 'video12',
2992
- subscribe_audio_id: 'audio12',
2993
- subscribe_streamId_id: 'subscribe_streamId12',
2994
- feedId_id: 'feedId12',
2995
- feedId: feed.feedId
2996
- }
2214
+ for (let i=1;i<=12;i++){
2215
+ if(!document.getElementById('video'+i).name) {
2216
+ config_param = {
2217
+ subscribe_video_id: 'video'+i,
2218
+ subscribe_audio_id: 'audio'+i,
2219
+ subscribe_streamId_id: 'subscribe_streamId'+i,
2220
+ feedId_id: 'feedId'+i,
2221
+ feedId: feed.feedId
2222
+ }
2223
+ break;
2224
+ }
2997
2225
  }
2998
2226
  if (config_param !== undefined) {
2999
2227
  config_param.need_volume_analyser = true
@@ -3051,126 +2279,26 @@ class Video extends Component {
3051
2279
  }
3052
2280
  }
3053
2281
  })
3054
- if (!document.getElementById("video1").name) {
3055
- this.state.isPIBIntranet[0].type = false
3056
- this.setState({
3057
- videoOneName: '',
3058
- voiceVideoOne: false,
3059
- noVideoOne: false
3060
- },()=>{
3061
- this.videoListClick()
3062
- })
3063
- }
3064
- if (!document.getElementById("video2").name) {
3065
- this.state.isPIBIntranet[1].type = false
3066
- this.setState({
3067
- videoTwoName: '',
3068
- voiceVideoTwo: false,
3069
- noVideoTwo: false
3070
- },()=>{
3071
- this.videoListClick()
3072
- })
3073
- }
3074
- if (!document.getElementById("video3").name) {
3075
- this.state.isPIBIntranet[2].type = false
3076
- this.setState({
3077
- videoThreeName: '',
3078
- voiceVideoThree: false,
3079
- noVideoThree: false
3080
- },()=>{
3081
- this.videoListClick()
3082
- })
3083
- }
3084
- if (!document.getElementById("video4").name) {
3085
- this.state.isPIBIntranet[3].type = false
3086
- this.setState({
3087
- videoFourName: '',
3088
- voiceVideoFour: false,
3089
- noVideoFour: false
3090
- },()=>{
3091
- this.videoListClick()
3092
- })
3093
- }
3094
- if (!document.getElementById("video5").name) {
3095
- this.state.isPIBIntranet[4].type = false
3096
- this.setState({
3097
- videoFiveName: '',
3098
- voiceVideoFive: false,
3099
- noVideoFive: false
3100
- },()=>{
3101
- this.videoListClick()
3102
- })
3103
- }
3104
- if (!document.getElementById("video6").name) {
3105
- this.state.isPIBIntranet[5].type = false
3106
- this.setState({
3107
- videoSixName: '',
3108
- voiceVideoSix: false,
3109
- noVideoSix: false
3110
- },()=>{
3111
- this.videoListClick()
3112
- })
3113
- }
3114
-
3115
- if (!document.getElementById("video7").name) {
3116
- this.state.isPIBIntranet[6].type = false
3117
- this.setState({
3118
- videoSevenName: '',
3119
- voiceVideoSeven: false,
3120
- noVideoSeven: false
3121
- },()=>{
3122
- this.videoListClick()
3123
- })
3124
- }
3125
- if (!document.getElementById("video8").name) {
3126
- this.state.isPIBIntranet[7].type = false
3127
- this.setState({
3128
- videoEightName: '',
3129
- voiceVideoEight: false,
3130
- noVideoEight: false
3131
- },()=>{
3132
- this.videoListClick()
3133
- })
3134
- }
3135
- if (!document.getElementById("video9").name) {
3136
- this.state.isPIBIntranet[8].type = false
3137
- this.setState({
3138
- videoNineName: '',
3139
- voiceVideoNine: false,
3140
- noVideoNine: false
3141
- },()=>{
3142
- this.videoListClick()
3143
- })
3144
- }
3145
- if (!document.getElementById("video10").name) {
3146
- this.state.isPIBIntranet[9].type = false
3147
- this.setState({
3148
- videoTenName: '',
3149
- voiceVideoTen: false,
3150
- noVideoTen: false
3151
- },()=>{
3152
- this.videoListClick()
3153
- })
3154
- }
3155
- if (!document.getElementById("video11").name) {
3156
- this.state.isPIBIntranet[10].type = false
3157
- this.setState({
3158
- videoElevenName: '',
3159
- voiceVideoEleven: false,
3160
- noVideoEleven: false
3161
- },()=>{
3162
- this.videoListClick()
3163
- })
2282
+ for(let i=1;i<=12;i++){
2283
+ if(!document.getElementById("video"+i).name) {
2284
+ this.state.videoList[i-1]= {
2285
+ ...this.state.videoList[i-1],
2286
+ videoName: '',
2287
+ mute: false,
2288
+ noVideo: false,
2289
+ isPIBIntranet: false,
2290
+ userSide: '',
2291
+ userType: '',
2292
+ userId: '',
2293
+ hasOcr: 0,
2294
+ }
2295
+ this.setState({
2296
+ videoList: this.state.videoList
2297
+ })
2298
+ }
3164
2299
  }
3165
- if (!document.getElementById("video12").name) {
3166
- this.state.isPIBIntranet[11].type = false
3167
- this.setState({
3168
- videoTwelveName: '',
3169
- voiceVideoTwelve: false,
3170
- noVideoTwelve: false
3171
- },()=>{
3172
- this.videoListClick()
3173
- })
2300
+ if (!document.getElementById("video1").name) {
2301
+ document.getElementById('audio1').muted = false
3174
2302
  }
3175
2303
  this.state.analyserData.delete(sid)
3176
2304
  if (this.state.isPictureInPicture) {
@@ -3225,6 +2353,7 @@ class Video extends Component {
3225
2353
  let data = res ? res.username ? res.username : '客户' : '客户'
3226
2354
  console.log(data)
3227
2355
  this.messageClick((data + '已退出会议'), 'error')
2356
+ this.saveLog(data + ' leave room')
3228
2357
  if (res.userType == 1) {
3229
2358
  // 2--坐席  1--客户
3230
2359
  this.props.userExit({
@@ -3255,6 +2384,7 @@ class Video extends Component {
3255
2384
  console.log('弱网回调', bpsSend, bpsRecv, sid)
3256
2385
  if (sid == document.getElementById('publish_video1').name) {
3257
2386
  this.messageClick('当前网络环境较差', 'error')
2387
+ this.saveLog('mrtc OnNetworkWeak')
3258
2388
  }
3259
2389
  };
3260
2390
  // 开始服务端录制成功
@@ -3262,6 +2392,7 @@ class Video extends Component {
3262
2392
  console.log('开始服务端录制成功', record_id);
3263
2393
  this.state.recordId = record_id
3264
2394
  this.videoRecordCallback('1', true)
2395
+ this.saveLog('mrtc OnStartRemoteRecordSucc')
3265
2396
  };
3266
2397
  // 开始服务端录制失败
3267
2398
  this.test_controller.OnStartRemoteRecordFailed = (
@@ -3271,11 +2402,13 @@ class Video extends Component {
3271
2402
  ) => {
3272
2403
  this.videoRecordCallback('1', false)
3273
2404
  console.log('开始服务端录制失败', record_id, err_code, err_msg)
2405
+ this.saveLog('mrtc OnStartRemoteRecordFailed, code='+err_code)
3274
2406
  };
3275
2407
  // 结束服务端录制成功
3276
2408
  this.test_controller.OnStopRemoteRecordSucc = (recordId) => {
3277
2409
  console.log('结束服务端录制成功', recordId);
3278
2410
  this.videoRecordCallback('2', true)
2411
+ this.saveLog('mrtc OnStopRemoteRecordSucc, recordId='+recordId)
3279
2412
  // this.endSessionValue()
3280
2413
  // 获取服务端录制结果
3281
2414
  };
@@ -3287,6 +2420,7 @@ class Video extends Component {
3287
2420
  ) => {
3288
2421
  this.videoRecordCallback('2', false)
3289
2422
  console.log('结束服务端录制失败', recordId, err_code, err_msg)
2423
+ this.saveLog('mrtc OnStopRemoteRecordFailed, err_code='+err_code)
3290
2424
  };
3291
2425
  // 开启浏览器录制成功
3292
2426
  this.test_controller.OnClientStartRecordSuccess = (
@@ -3432,6 +2566,7 @@ class Video extends Component {
3432
2566
  msg
3433
2567
  ) => {
3434
2568
  console.log('切流失败通知', sid, code, msg)
2569
+ this.saveLog('mrtc OnChangeMediaStreamFailed, code=' + code)
3435
2570
  if (this.state.loading) {
3436
2571
  this.setState({
3437
2572
  loading: false
@@ -3674,6 +2809,13 @@ class Video extends Component {
3674
2809
  clearStreamRemain()
3675
2810
  this.test_controller.LeaveRoom()
3676
2811
  this.test_controller.Disconnect()
2812
+ try {
2813
+ beautySetMode('none');
2814
+ beautyStop();
2815
+ console.log('beautyStop!!')
2816
+ } catch (err){
2817
+ console.error(err)
2818
+ }
3677
2819
  }
3678
2820
  if (this.state.imStatus) {
3679
2821
  console.log('disconnect断开连接')
@@ -3871,7 +3013,21 @@ class Video extends Component {
3871
3013
  }
3872
3014
  }
3873
3015
  componentWillMount() {
3874
- console.log('hsbc_teller_sdk', '1.9.81')
3016
+ console.log('hsbc_teller_sdk', '2.0.0')
3017
+ let arr = []
3018
+ for(let i=1;i<=12;i++){
3019
+ arr.push({
3020
+ videoName: '',
3021
+ mute: false,
3022
+ noVideo: false,
3023
+ isPIBIntranet: false,
3024
+ idIndex: i,
3025
+ hasOcr: 0,
3026
+ })
3027
+ }
3028
+ this.setState({
3029
+ videoList: arr
3030
+ })
3875
3031
  if (this.props.sessionId) {
3876
3032
  this.getRoomStatus({
3877
3033
  sessionId: this.props.sessionId
@@ -4218,7 +3374,8 @@ class Video extends Component {
4218
3374
  isModalVisibleSFP: false,
4219
3375
  disabledIdCard: false,
4220
3376
  isStaffState: 'success',
4221
- loadingStaff: false
3377
+ loadingStaff: false,
3378
+ authorizeStaffId: this.state.StaffidSFP,
4222
3379
  })
4223
3380
  }).catch((err) => {
4224
3381
  console.log(err)
@@ -4241,60 +3398,112 @@ class Video extends Component {
4241
3398
  PasswordSFP: event.target.value
4242
3399
  })
4243
3400
  }
3401
+ handleFinishOcr = async (type) => {
3402
+ // 非身份证直接入库
3403
+ if (type == 'noFace') {
3404
+ await this.confirmCallback()
3405
+ // this.setState({
3406
+ // idCardNameFace: this.state.idCardName,
3407
+ // idCardNumberFace: this.state.idCardNumber,
3408
+ // certificateValidityFace: this.state.certificateValidity
3409
+ // },()=>{
3410
+ this.setState({
3411
+ isModalVisibleFacial: false,
3412
+ cardResuly: '',
3413
+ idCardNumber: '',
3414
+ idCardName: '',
3415
+ certificateValidity: '',
3416
+ resultIdCardName: '',
3417
+ resultIdCardNumber: '',
3418
+ resultCertificateDate: '',
3419
+ authorizeStaffId: ''
3420
+ })
3421
+ // })
3422
+ } else {
3423
+ console.log('身份证ocr')
3424
+ // 身份证,进行人脸识别后再入库
3425
+ this.state.userIdCardResults[this.state.faceCustomerUid] = {
3426
+ idCardName: this.state.idCardName,
3427
+ idCardNumber: this.state.idCardNumber,
3428
+ customerName: this.state.customerName,
3429
+ certificateValidity: this.state.certificateValidity,
3430
+ resultIdCardName: this.state.resultIdCardName,
3431
+ resultIdCardNumber: this.state.resultIdCardNumber,
3432
+ resultCertificateDate: this.state.resultCertificateDate,
3433
+ authorizeStaffId: this.state.authorizeStaffId,
3434
+ }
3435
+ console.log(this.state.userIdCardResults)
3436
+ this.setState({
3437
+ idCardNameFace: this.state.idCardName,
3438
+ idCardNumberFace: this.state.idCardNumber,
3439
+ certificateValidityFace: this.state.certificateValidity,
3440
+ userIdCardResults: this.state.userIdCardResults
3441
+ },()=>{
3442
+ this.state.faceCustomerType = 1
3443
+ this.setState({
3444
+ cardResuly: '',
3445
+ certificateValidity: '',
3446
+ idCardNumber: '',
3447
+ idCardName: '',
3448
+ resultIdCardName: '',
3449
+ resultIdCardNumber: '',
3450
+ resultCertificateDate: '',
3451
+ authorizeStaffId: '',
3452
+ titleModal: '身份验证',
3453
+ // clickedFacial: true,
3454
+ facialImg: faceImage,
3455
+ isFaceImage: false
3456
+ })
3457
+ })
3458
+ setTimeout(() => {
3459
+ this.publishVideoTwo()
3460
+ }, 0);
3461
+ }
3462
+ }
3463
+ // ocr结果入库
4244
3464
  confirmCallback = async (data) => {
4245
3465
  try {
4246
- let result = await API.confirmCallback({
4247
- idCardName: this.state.idCardName,
3466
+ // 原始证件参数
3467
+ let data = {
3468
+ idCardName: this.state.resultIdCardName,
4248
3469
  staffId: this.props.tellerAccount,
4249
3470
  activityId: this.props.businessNumber,
4250
3471
  appAccount: this.state.faceCustomerUid,
4251
- idCardNumber: this.state.idCardNumber,
3472
+ idCardNumber: this.state.resultIdCardNumber,
4252
3473
  sessionId: this.state.sessionId,
4253
3474
  certificateType: this.state.certificateType,
4254
3475
  customerName: this.state.customerName,
4255
- startDate: this.state.documentType == 'PASSPORT_CARD' ? '' : this.state.certificateValidity ? this.state.certificateValidity.split('-')[0] : '',
4256
- endDate: this.state.documentType == 'PASSPORT_CARD' ? this.state.certificateValidity ? this.state.certificateValidity.split('-')[0]: '' : this.state.certificateValidity ? this.state.certificateValidity.split('-')[1] : '',
4257
- });
3476
+ startDate: this.state.documentType == 'PASSPORT_CARD' ? '' : this.state.resultCertificateDate ? this.state.resultCertificateDate.split('-')[0] : '',
3477
+ endDate: this.state.documentType == 'PASSPORT_CARD' ? this.state.resultCertificateDate ? this.state.resultCertificateDate.split('-')[0]: '' : this.state.resultCertificateDate ? this.state.resultCertificateDate.split('-')[1] : '',
3478
+ }
3479
+ // 添加修改后的证件参数
3480
+ if (this.state.authorizeStaffId) {
3481
+ data.authorizeStaffId = this.state.authorizeStaffId
3482
+ }
3483
+ if (this.state.idCardName != this.state.resultIdCardName) {
3484
+ data.reviseIdCardName = this.state.idCardName
3485
+ }
3486
+ if (this.state.idCardNumber != this.state.resultIdCardNumber) {
3487
+ data.reviseIdCardNumber = this.state.idCardNumber
3488
+ }
3489
+ let reviseCertificateStartDate = this.state.documentType == 'PASSPORT_CARD' ? '' : this.state.certificateValidity ? this.state.certificateValidity.split('-')[0] : '';
3490
+ let reviseCertificateEndDate = this.state.documentType == 'PASSPORT_CARD' ? this.state.certificateValidity ? this.state.certificateValidity.split('-')[0]: '' : this.state.certificateValidity ? this.state.certificateValidity.split('-')[1] : '';
3491
+ if (reviseCertificateStartDate != data.startDate) {
3492
+ data.reviseCertificateStartDate = reviseCertificateStartDate
3493
+ }
3494
+ if (reviseCertificateEndDate != data.endDate) {
3495
+ data.reviseCertificateEndDate = reviseCertificateEndDate
3496
+ }
3497
+ let result = await API.confirmCallback(data);
4258
3498
  console.log('confirmCallback', result)
4259
3499
  if (result.code == 200) {
4260
- console.log(data)
4261
-
4262
- if (data == 'noFace') {
4263
- this.setState({
4264
- idCardNameFace: this.state.idCardName,
4265
- idCardNumberFace: this.state.idCardNumber,
4266
- certificateValidityFace: this.state.certificateValidity
4267
- },()=>{
4268
- this.setState({
4269
- isModalVisibleFacial: false,
4270
- cardResuly: '',
4271
- idCardNumber: '',
4272
- idCardName: '',
4273
- certificateValidity: '',
4274
- })
4275
- })
4276
- } else {
4277
- console.log('data')
4278
- this.setState({
4279
- idCardNameFace: this.state.idCardName,
4280
- idCardNumberFace: this.state.idCardNumber,
4281
- certificateValidityFace: this.state.certificateValidity
4282
- },()=>{
4283
- this.state.faceCustomerType = 1
4284
- this.setState({
4285
- cardResuly: '',
4286
- certificateValidity: '',
4287
- idCardNumber: '',
4288
- idCardName: '',
4289
- titleModal: '人脸识别',
4290
- // clickedFacial: true,
4291
- facialImg: ocrImage,
4292
- isFaceImage: false
4293
- })
4294
- })
4295
- this.publishVideoTwo()
4296
- }
4297
-
3500
+ // console.log(data)
3501
+ let item = this.state.videoList.find(el => el.userId == this.state.faceCustomerUid )
3502
+ item.hasOcr = 1; // 非身份证ocr
3503
+ // this.setState({
3504
+ // videoList: this.state.videoList
3505
+ // })
3506
+ this.videoListSort();
4298
3507
  } else {
4299
3508
  console.log('1')
4300
3509
  this.messageClick('保持信息失败', 'error')
@@ -4335,6 +3544,8 @@ class Video extends Component {
4335
3544
  this.setState({
4336
3545
  idCardNumber: result.data.idCardNumber,
4337
3546
  idCardName: result.data.idCardName,
3547
+ resultIdCardName: result.data.idCardName,
3548
+ resultIdCardNumber: result.data.idCardNumber,
4338
3549
  loadingFace: false,
4339
3550
  cardFailReason: '',
4340
3551
  cardResuly: 'success',
@@ -4343,6 +3554,8 @@ class Video extends Component {
4343
3554
  this.setState({
4344
3555
  idCardNumber: result.data.idCardNumber,
4345
3556
  idCardName: result.data.idCardName,
3557
+ resultIdCardName: result.data.idCardName,
3558
+ resultIdCardNumber: result.data.idCardNumber,
4346
3559
  certificateValidityType: false,
4347
3560
  cardFailReason: '证件已过期[#'+result.code+'#]',
4348
3561
  loadingFace: false,
@@ -4354,7 +3567,9 @@ class Video extends Component {
4354
3567
  this.setState({
4355
3568
  // isModalVisibleFacial: false
4356
3569
  idCardNumber: result.data.idCardNumber,
4357
- idCardName: result.data.idCardName
3570
+ idCardName: result.data.idCardName,
3571
+ resultIdCardName: result.data.idCardName,
3572
+ resultIdCardNumber: result.data.idCardNumber,
4358
3573
  })
4359
3574
  this.ocrCallback(2)
4360
3575
  }
@@ -4372,6 +3587,7 @@ class Video extends Component {
4372
3587
  if(this.state.idCardName && this.dateNewTime(endDate)) {
4373
3588
  this.setState({
4374
3589
  certificateValidity: startDate + '-' + endDate,
3590
+ resultCertificateDate: startDate + '-' + endDate,
4375
3591
  loadingFace: false,
4376
3592
  cardFailReason: '',
4377
3593
  cardResuly: 'success',
@@ -4380,6 +3596,7 @@ class Video extends Component {
4380
3596
  } else if(this.state.idCardName && !this.dateNewTime(endDate)) {
4381
3597
  this.setState({
4382
3598
  certificateValidity: startDate + '-' + endDate,
3599
+ resultCertificateDate: startDate + '-' + endDate,
4383
3600
  loadingFace: false,
4384
3601
  certificateValidityType: false,
4385
3602
  cardFailReason: '证件已过期[#'+result.code+'#]',
@@ -4408,36 +3625,50 @@ class Video extends Component {
4408
3625
  } else {
4409
3626
  this.setState({
4410
3627
  loadingFace: false,
4411
- cardFailReason: '证件截取顺序有误,请返回重拍[41000]',
3628
+ cardFailReason: '证件截取顺序有误,请返回重拍[#-41000#]',
4412
3629
  cardResuly: 'fail',
4413
3630
  })
4414
3631
  }
4415
3632
  }
4416
3633
  if(this.state.documentType == 'HK_MO_RESIDENCE_CARD' || this.state.documentType == 'TW_RESIDENCE_CARD') {
4417
- if (result.data.side == 'front') {
3634
+ if (result.data.side == 'front' && val == 1) {
4418
3635
  this.setState({
4419
3636
  // isModalVisibleFacial: false
4420
3637
  idCardNumber: result.data.resident.idNum,
4421
- idCardName: result.data.resident.name
3638
+ idCardName: result.data.resident.name,
3639
+ resultIdCardName: result.data.resident.name,
3640
+ resultIdCardNumber: result.data.resident.idNum,
4422
3641
  })
4423
3642
  this.ocrCallback(2)
4424
- } else if (result.data.side == 'back') {
3643
+ } else if (result.data.side == 'back' && val != 1) {
4425
3644
  console.log(result.data.resident.startDate, result.data.resident.endDate)
4426
3645
  this.setState({
4427
3646
  certificateValidity: result.data.resident.startDate + '-' + result.data.resident.endDate,
3647
+ resultCertificateDate: result.data.resident.startDate + '-' + result.data.resident.endDate,
4428
3648
  loadingFace: false,
4429
3649
  cardFailReason: result.code == 40002 ? '证件已过期[#'+result.code+'#]' : '',
3650
+ certificateValidityType: result.code == 40002 ? false : true,
4430
3651
  cardResuly: 'success',
4431
3652
  })
3653
+ } else {
3654
+ this.setState({
3655
+ loadingFace: false,
3656
+ cardFailReason: '证件截取顺序有误,请返回重拍[#-41000#]',
3657
+ cardResuly: 'fail',
3658
+ })
4432
3659
  }
4433
3660
  }
4434
3661
  if(this.state.documentType == 'PASSPORT_CARD') {
4435
3662
  this.setState({
4436
3663
  idCardNumber: result.data.passport.passportCode,
4437
3664
  idCardName: result.data.passport.nameEN,
3665
+ resultIdCardName: result.data.passport.nameEN,
3666
+ resultIdCardNumber: result.data.passport.passportCode,
4438
3667
  certificateValidity: result.data.passport.expiryDate,
3668
+ resultCertificateDate: result.data.passport.expiryDate,
4439
3669
  loadingFace: false,
4440
3670
  cardFailReason: result.code == 30002 ? '证件已过期[#'+result.code+'#]' : '',
3671
+ certificateValidityType: result.code == 30002 ? false : true,
4441
3672
  cardResuly: 'success',
4442
3673
  })
4443
3674
  }
@@ -4446,9 +3677,13 @@ class Video extends Component {
4446
3677
  this.setState({
4447
3678
  idCardNumber: result.data.permission.cardNum,
4448
3679
  idCardName: result.data.permission.nameEN,
3680
+ resultIdCardName: result.data.permission.nameEN,
3681
+ resultIdCardNumber: result.data.permission.cardNum,
4449
3682
  certificateValidity: result.data.permission.validDate,
3683
+ resultCertificateDate: result.data.permission.validDate,
4450
3684
  loadingFace: false,
4451
3685
  cardFailReason: result.code == 50002 ? '证件已过期[#'+result.code+'#]' : '',
3686
+ certificateValidityType: result.code == 50002 ? false : true,
4452
3687
  cardResuly: 'success',
4453
3688
  })
4454
3689
  }
@@ -4475,7 +3710,7 @@ class Video extends Component {
4475
3710
  }
4476
3711
  handleOkFacial = () => {
4477
3712
  if (this.state.faceCustomerType == 2) {
4478
- if (this.state.IDtypeFrontOrBack == '请截取证件头像面') {
3713
+ if (this.state.IDtypeFrontOrBack == IDtypeFront) {
4479
3714
  if(this.state.documentType == 'PASSPORT_CARD' || this.state.documentType == 'TW_PASS_CARD' || this.state.documentType == 'HK_MO_PASS_CARD') {
4480
3715
  this.setState({
4481
3716
  loadingFace: true
@@ -4484,30 +3719,89 @@ class Video extends Component {
4484
3719
  } else {
4485
3720
  this.setState({
4486
3721
  facialImg: ocrImage,
4487
- IDtypeFrontOrBack: '请截取证件国徽面',
3722
+ IDtypeFrontOrBack: IDtypeBack,
4488
3723
  isFaceImage: false,
4489
3724
  })
4490
3725
  }
4491
3726
 
4492
- } else if (this.state.IDtypeFrontOrBack == '请截取证件国徽面') {
3727
+ } else if (this.state.IDtypeFrontOrBack == IDtypeBack) {
4493
3728
  this.setState({
4494
3729
  loadingFace: true
4495
3730
  })
4496
3731
  this.ocrCallback(1)
4497
3732
  }
4498
- // ocr
4499
- } else {
4500
- this.setState({
4501
- loadingFace: true
4502
- })
4503
- this.contrastFaceVerify()
4504
- // const frontIdcard = new File([this.dataURLtoFile(this.state.facialImg, 'image/jpeg')], new Date() + '.png'); // 重命名了
4505
- // const formData = new FormData();
4506
- // formData.append('file', frontIdcard);
4507
- // formData.append('sessionId', this.state.sessionId);
4508
- // this.uploadImg(formData)
3733
+ // ocr
3734
+ } else {
3735
+ this.setState({
3736
+ loadingFace: true
3737
+ })
3738
+ this.contrastFaceVerify()
3739
+ // const frontIdcard = new File([this.dataURLtoFile(this.state.facialImg, 'image/jpeg')], new Date() + '.png'); // 重命名了
3740
+ // const formData = new FormData();
3741
+ // formData.append('file', frontIdcard);
3742
+ // formData.append('sessionId', this.state.sessionId);
3743
+ // this.uploadImg(formData)
3744
+ }
3745
+
3746
+ };
3747
+ handleFinishFacial = async () => {
3748
+ let userInfo = this.state.userIdCardResults[this.state.faceCustomerUid]
3749
+ console.log(this.state.faceCustomerUid, userInfo)
3750
+ if (!userInfo || !userInfo.idCardNumber) {
3751
+ console.log('没有身份证ocr信息')
3752
+ return
3753
+ }
3754
+ this.handleCancelFacial();
3755
+ try {
3756
+ // 原始证件参数
3757
+ let data = {
3758
+ idCardName: userInfo.resultIdCardName,
3759
+ staffId: this.props.tellerAccount,
3760
+ activityId: this.props.businessNumber,
3761
+ appAccount: this.state.faceCustomerUid,
3762
+ idCardNumber: userInfo.resultIdCardNumber,
3763
+ sessionId: this.state.sessionId,
3764
+ certificateType: 'ID_CARD',
3765
+ customerName: userInfo.customerName,
3766
+ startDate: userInfo.resultCertificateDate ? userInfo.resultCertificateDate.split('-')[0] : '',
3767
+ endDate: userInfo.resultCertificateDate ? userInfo.resultCertificateDate.split('-')[1] : '',
3768
+ }
3769
+ // 添加修改后的证件参数
3770
+ if (userInfo.authorizeStaffId) {
3771
+ data.authorizeStaffId = userInfo.authorizeStaffId
3772
+ }
3773
+ if (userInfo.idCardName != userInfo.resultIdCardName) {
3774
+ data.reviseIdCardName = userInfo.idCardName
3775
+ }
3776
+ if (userInfo.idCardNumber != userInfo.resultIdCardNumber) {
3777
+ data.reviseIdCardNumber = userInfo.idCardNumber
3778
+ }
3779
+ let reviseCertificateStartDate = userInfo.certificateValidity ? userInfo.certificateValidity.split('-')[0] : '';
3780
+ let reviseCertificateEndDate = userInfo.certificateValidity ? userInfo.certificateValidity.split('-')[1] : '';
3781
+ if (reviseCertificateStartDate != data.startDate) {
3782
+ data.reviseCertificateStartDate = reviseCertificateStartDate
3783
+ }
3784
+ if (reviseCertificateEndDate != data.endDate) {
3785
+ data.reviseCertificateEndDate = reviseCertificateEndDate
3786
+ }
3787
+ let result = await API.confirmCallback(data);
3788
+ console.log('confirmCallback', result)
3789
+ if (result.code == 200) {
3790
+ // console.log(data)
3791
+ let item = this.state.videoList.find(el => el.userId == this.state.faceCustomerUid )
3792
+ item.hasOcr = 2; // 身份证ocr
3793
+ // this.setState({
3794
+ // videoList: this.state.videoList
3795
+ // })
3796
+ this.videoListSort();
3797
+ } else {
3798
+ console.log('1')
3799
+ this.messageClick('保持信息失败', 'error')
3800
+ }
3801
+ } catch (err) {
3802
+ console.log('2',err)
3803
+ this.messageClick('保持信息失败', 'error')
4509
3804
  }
4510
-
4511
3805
  };
4512
3806
  handleCancelFacial = () => {
4513
3807
  callNimIM('sendCustomCmdMsg', {
@@ -4558,7 +3852,7 @@ class Video extends Component {
4558
3852
  isFaceImage: false,
4559
3853
  facialImg: ocrImage,
4560
3854
  disabledIdCard: true,
4561
- IDtypeFrontOrBack: '请截取证件头像面',
3855
+ IDtypeFrontOrBack: IDtypeFront,
4562
3856
  facialImgFront: '',
4563
3857
  facialImgBack: '',
4564
3858
  faceResuly: '',
@@ -4718,9 +4012,9 @@ class Video extends Component {
4718
4012
  clickedFacial: false,
4719
4013
  clickedOcr: false,
4720
4014
  isFaceImage: false,
4721
- facialImg: ocrImage,
4015
+ facialImg: this.state.titleModal=='身份验证'? faceImage : ocrImage,
4722
4016
  disabledIdCard: true,
4723
- IDtypeFrontOrBack: '请截取证件头像面',
4017
+ IDtypeFrontOrBack: IDtypeFront,
4724
4018
  facialImgFront: '',
4725
4019
  facialImgBack: '',
4726
4020
  faceResuly: '',
@@ -4741,13 +4035,13 @@ class Video extends Component {
4741
4035
  }
4742
4036
  }
4743
4037
  sgsinImage = () => {
4744
- if (this.state.IDtypeFrontOrBack == '请截取证件头像面') {
4038
+ if (this.state.IDtypeFrontOrBack == IDtypeFront) {
4745
4039
  this.setState({
4746
4040
  facialImg: this.test_controller.TakePicture(1, undefined, undefined, this.state.customOcrSid, 'png'),
4747
4041
  isFaceImage: true,
4748
4042
  facialImgFront: this.test_controller.TakePicture(1, undefined, undefined, this.state.customOcrSid, 'png'),
4749
4043
  })
4750
- } else if (this.state.IDtypeFrontOrBack == '请截取证件国徽面') {
4044
+ } else if (this.state.IDtypeFrontOrBack == IDtypeBack) {
4751
4045
  this.setState({
4752
4046
  facialImg: this.test_controller.TakePicture(1, undefined, undefined, this.state.customOcrSid, 'png'),
4753
4047
  isFaceImage: true,
@@ -4792,38 +4086,10 @@ class Video extends Component {
4792
4086
  console.log(sid)
4793
4087
  let userId = ''
4794
4088
  let index
4795
- if (document.getElementById('video1').name == sid) {
4796
- userId = this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId1").innerText).uid
4797
- }
4798
- if (document.getElementById('video2').name == sid) {
4799
- userId = this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId2").innerText).uid
4800
- } if (document.getElementById('video3').name == sid) {
4801
- userId = this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId3").innerText).uid
4802
- } if (document.getElementById('video4').name == sid) {
4803
- userId = this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId4").innerText).uid
4804
- } if (document.getElementById('video5').name == sid) {
4805
- userId = this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId5").innerText).uid
4806
- } if (document.getElementById('video6').name == sid) {
4807
- userId = this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId6").innerText).uid
4808
- }
4809
-
4810
- if (document.getElementById('video7').name == sid) {
4811
- userId = this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId7").innerText).uid
4812
- }
4813
- if (document.getElementById('video8').name == sid) {
4814
- userId = this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId8").innerText).uid
4815
- }
4816
- if (document.getElementById('video9').name == sid) {
4817
- userId = this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId9").innerText).uid
4818
- }
4819
- if (document.getElementById('video10').name == sid) {
4820
- userId = this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId10").innerText).uid
4821
- }
4822
- if (document.getElementById('video11').name == sid) {
4823
- userId = this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId11").innerText).uid
4824
- }
4825
- if (document.getElementById('video12').name == sid) {
4826
- userId = this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId12").innerText).uid
4089
+ for (let i =1;i<=12;i++){
4090
+ if(document.getElementById('video'+ i) && document.getElementById('video'+ i).name == sid && document.getElementById("feedId"+i).innerText){
4091
+ userId = this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId"+i).innerText).uid
4092
+ }
4827
4093
  }
4828
4094
  if (document.getElementById('publish_video1').name == sid) {
4829
4095
  userId = this.props.tellerAccount
@@ -4831,7 +4097,8 @@ class Video extends Component {
4831
4097
  try {
4832
4098
  let result = await API.appGetUsername({
4833
4099
  userId: userId,
4834
- sessionId: this.state.sessionId
4100
+ sessionId: this.state.sessionId,
4101
+ activityId: this.props.businessNumber
4835
4102
  });
4836
4103
  console.log(result)
4837
4104
  let data
@@ -4859,117 +4126,28 @@ class Video extends Component {
4859
4126
  this.setState({
4860
4127
  titleNameRm: data
4861
4128
  })
4862
- }
4863
- if (document.getElementById('video1').name == sid) {
4864
- if ((typeIntranet && typeIntranet == 2) || (userSide && userSide == 2)) {
4865
- this.state.isPIBIntranet[0].type = true
4866
- }
4867
- this.setState({
4868
- videoOneName: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId1").innerText).tag == 'VIDEO_SOURCE_SCREEN' ? '共享屏幕' : data ? data : '客户1'
4869
- },()=>{
4870
- this.videoListClick()
4871
- })
4872
- }
4873
- if (document.getElementById('video2').name == sid) {
4874
- if ((typeIntranet && typeIntranet == 2) || (userSide && userSide == 2)) {
4875
- this.state.isPIBIntranet[1].type = true
4876
- }
4877
- this.setState({
4878
- videoTwoName: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId2").innerText).tag == 'VIDEO_SOURCE_SCREEN' ? '共享屏幕' : data ? data : '客户2'
4879
- },()=>{
4880
- this.videoListClick()
4881
- })
4882
- } if (document.getElementById('video3').name == sid) {
4883
- if ((typeIntranet && typeIntranet == 2) || (userSide && userSide == 2)) {
4884
- this.state.isPIBIntranet[2].type = true
4885
- }
4886
- this.setState({
4887
- videoThreeName: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId3").innerText).tag == 'VIDEO_SOURCE_SCREEN' ? '共享屏幕' : data ? data : '客户3'
4888
- },()=>{
4889
- this.videoListClick()
4890
- })
4891
- } if (document.getElementById('video4').name == sid) {
4892
- if ((typeIntranet && typeIntranet == 2) || (userSide && userSide == 2)) {
4893
- this.state.isPIBIntranet[3].type = true
4894
- }
4895
- this.setState({
4896
- videoFourName: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId4").innerText).tag == 'VIDEO_SOURCE_SCREEN' ? '共享屏幕' : data ? data : '客户4'
4897
- },()=>{
4898
- this.videoListClick()
4899
- })
4900
- } if (document.getElementById('video5').name == sid) {
4901
- if ((typeIntranet && typeIntranet == 2) || (userSide && userSide == 2)) {
4902
- this.state.isPIBIntranet[4].type = true
4903
- }
4904
- this.setState({
4905
- videoFiveName: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId5").innerText).tag == 'VIDEO_SOURCE_SCREEN' ? '共享屏幕' : data ? data : '客户5'
4906
- },()=>{
4907
- this.videoListClick()
4908
- })
4909
- } if (document.getElementById('video6').name == sid) {
4910
- if ((typeIntranet && typeIntranet == 2) || (userSide && userSide == 2)) {
4911
- this.state.isPIBIntranet[5].type = true
4912
- }
4913
- this.setState({
4914
- videoSixName: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId6").innerText).tag == 'VIDEO_SOURCE_SCREEN' ? '共享屏幕' : data ? data : '客户6'
4915
- },()=>{
4916
- this.videoListClick()
4917
- })
4918
- }
4919
- if (document.getElementById('video7').name == sid) {
4920
- if ((typeIntranet && typeIntranet == 2) || (userSide && userSide == 2)) {
4921
- this.state.isPIBIntranet[6].type = true
4922
- }
4923
- this.setState({
4924
- videoSevenName: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId7").innerText).tag == 'VIDEO_SOURCE_SCREEN' ? '共享屏幕' : data ? data : '客户7'
4925
- },()=>{
4926
- this.videoListClick()
4927
- })
4928
- } if (document.getElementById('video8').name == sid) {
4929
- if ((typeIntranet && typeIntranet == 2) || (userSide && userSide == 2)) {
4930
- this.state.isPIBIntranet[7].type = true
4931
- }
4932
- this.setState({
4933
- videoEightName: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId8").innerText).tag == 'VIDEO_SOURCE_SCREEN' ? '共享屏幕' : data ? data : '客户8'
4934
- },()=>{
4935
- this.videoListClick()
4936
- })
4937
- } if (document.getElementById('video9').name == sid) {
4938
- if ((typeIntranet && typeIntranet == 2) || (userSide && userSide == 2)) {
4939
- this.state.isPIBIntranet[8].type = true
4940
- }
4941
- this.setState({
4942
- videoNineName: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId9").innerText).tag == 'VIDEO_SOURCE_SCREEN' ? '共享屏幕' : data ? data : '客户9'
4943
- },()=>{
4944
- this.videoListClick()
4945
- })
4946
- } if (document.getElementById('video10').name == sid) {
4947
- if ((typeIntranet && typeIntranet == 2) || (userSide && userSide == 2)) {
4948
- this.state.isPIBIntranet[9].type = true
4949
- }
4950
- this.setState({
4951
- videoTenName: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId10").innerText).tag == 'VIDEO_SOURCE_SCREEN' ? '共享屏幕' : data ? data : '客户10'
4952
- },()=>{
4953
- this.videoListClick()
4954
- })
4955
- } if (document.getElementById('video11').name == sid) {
4956
- if ((typeIntranet && typeIntranet == 2) || (userSide && userSide == 2)) {
4957
- this.state.isPIBIntranet[10].type = true
4958
- }
4959
- this.setState({
4960
- videoElevenName: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId11").innerText).tag == 'VIDEO_SOURCE_SCREEN' ? '共享屏幕' : data ? data : '客户11'
4961
- },()=>{
4962
- this.videoListClick()
4963
- })
4964
- } if (document.getElementById('video12').name == sid) {
4965
- if ((typeIntranet && typeIntranet == 2) || (userSide && userSide == 2)) {
4966
- this.state.isPIBIntranet[11].type = true
4129
+ } else {
4130
+ for (let i =1;i<=12;i++){
4131
+ if(document.getElementById('video'+i).name == sid){
4132
+
4133
+ if ((typeIntranet && typeIntranet == 2) && (userSide && userSide == 2)) {
4134
+ // this.state.isPIBIntranet[0].type = true
4135
+ this.state.videoList[i-1].isPIBIntranet = true
4136
+ }
4137
+ if (result.data.idCardNumber && result.data.certificateType) {
4138
+ this.state.videoList[i-1].hasOcr = result.data.certificateType.includes('ID_CARD') ? 2 : 1
4139
+ }
4140
+ this.state.videoList[i-1].userId = userId
4141
+ this.state.videoList[i-1].videoName = data
4142
+ this.state.videoList[i-1].userSide = userSide
4143
+ this.state.videoList[i-1].userType = typeIntranet
4144
+ }
4967
4145
  }
4968
4146
  this.setState({
4969
- videoTwelveName: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId12").innerText).tag == 'VIDEO_SOURCE_SCREEN' ? '共享屏幕' : data ? data : '客户12'
4970
- },()=>{
4971
- this.videoListClick()
4147
+ videoList: this.state.videoList
4148
+ // videoOneName: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId"+i).innerText).tag == 'tag1' ? '坐席' : data ? data : ('客户'+i)
4972
4149
  })
4150
+ this.videoListSort();
4973
4151
  }
4974
4152
  if (this.state.isPictureInPicture) {
4975
4153
  this.pictureInPicture('Refresh')
@@ -5062,55 +4240,54 @@ class Video extends Component {
5062
4240
  canvas.height = 540;
5063
4241
 
5064
4242
 
5065
- // videoMedia.addEventListener('play', (event) => {
5066
- // var $this = this; //cache
5067
- // if ($this.state.operateShow) {
5068
- // isGraffiti = false
5069
- // this.setState({
5070
- // zIndexNum: 999
5071
- // })
5072
- // const canvas = document.getElementById('canvas');
5073
- // canvas.width = this.state.whiteboardWidth
5074
- // }
5075
- // console.log('addEventListener', !$this.paused, !$this.ended, x, y, width, height)
5076
- // loop()
5077
- // function loop() {
5078
- // if (!$this.paused && !$this.ended) {
5079
- // // if(!that.state.tabTitles.find(el=>el.value == 'customerScreen')) {
5080
- // cobj.drawImage(videoMedia, x, y, width, height, 0, 0, 960, 540);
5081
- // // } else {
5082
- // // cobj.fillStyle = 'rgb(0 0 0)'
5083
- // // cobj.fillRect(0,0,960,540)
5084
- // // }
5085
-
5086
- // setTimeout(loop, 1000 / 20); // drawing at 30fps
5087
- // }
5088
- // }
5089
-
5090
- // if (document.getElementById('video20').name) {
5091
- // // 代表已经有了进行切流
5092
- // publish_config.publish_device = 5
5093
- // publish_config.media_type = 1
5094
- // publish_config.degradationType = 2
5095
- // publish_config.sid = document.getElementById('video20').name
5096
- // publish_config.stream = canvas.captureStream(10)
5097
- // publish_config.video_profile_type = 1
5098
- // this.test_controller.ChangeMediaStream(publish_config);
5099
- // } else {
5100
-
5101
- // publish_config.media_type = 1
5102
- // publish_config.publish_device = 5
5103
- // publish_config.need_volume_analyser = true
5104
- // publish_config.video_profile_type = 1
5105
- // publish_config.degradationType = 2
5106
- // publish_config.stream = canvas.captureStream(10)
5107
- // publish_config.publish_video_id = 'video20'
5108
- // publish_config.publish_streamId_id = 'subscribe_streamId10'
5109
- // publish_config.publish_tag = 'projectionWhiteboard'
5110
- // this.test_controller.Publish(publish_config)
5111
- // }
5112
- // }, 0);
5113
- // 获取屏幕流
4243
+ videoMedia.addEventListener('play', (event) => {
4244
+ var $this = this; //cache
4245
+ if ($this.state.operateShow) {
4246
+ isGraffiti = false
4247
+ this.setState({
4248
+ zIndexNum: 999
4249
+ })
4250
+ const canvas = document.getElementById('canvas');
4251
+ canvas.width = this.state.whiteboardWidth
4252
+ }
4253
+ console.log('addEventListener', !$this.paused, !$this.ended, x, y, width, height)
4254
+ loop()
4255
+ function loop() {
4256
+ if (!$this.paused && !$this.ended) {
4257
+ // if(!that.state.tabTitles.find(el=>el.value == 'customerScreen')) {
4258
+ cobj.drawImage(videoMedia, x, y, width, height, 0, 0, 960, 540);
4259
+ // } else {
4260
+ // cobj.fillStyle = 'rgb(0 0 0)'
4261
+ // cobj.fillRect(0,0,960,540)
4262
+ // }
4263
+
4264
+ setTimeout(loop, 1000 / 20); // drawing at 30fps
4265
+ }
4266
+ }
4267
+
4268
+ if (document.getElementById('video20').name) {
4269
+ // 代表已经有了进行切流
4270
+ publish_config.publish_device = 5
4271
+ publish_config.media_type = 1
4272
+ publish_config.degradationType = 2
4273
+ publish_config.sid = document.getElementById('video20').name
4274
+ publish_config.stream = canvas.captureStream(10)
4275
+ publish_config.video_profile_type = 1
4276
+ this.test_controller.ChangeMediaStream(publish_config);
4277
+ } else {
4278
+
4279
+ publish_config.media_type = 1
4280
+ publish_config.publish_device = 5
4281
+ publish_config.need_volume_analyser = true
4282
+ publish_config.video_profile_type = 1
4283
+ publish_config.degradationType = 2
4284
+ publish_config.stream = canvas.captureStream(10)
4285
+ publish_config.publish_video_id = 'video20'
4286
+ publish_config.publish_streamId_id = 'subscribe_streamId10'
4287
+ publish_config.publish_tag = 'projectionWhiteboard'
4288
+ this.test_controller.Publish(publish_config)
4289
+ }
4290
+ }, 0);
5114
4291
  navigator.mediaDevices.getDisplayMedia({
5115
4292
  video: true,
5116
4293
  preferCurrentTab: true,
@@ -5135,17 +4312,6 @@ class Video extends Component {
5135
4312
 
5136
4313
  streamShare = stream
5137
4314
 
5138
- publish_config.media_type = 1
5139
- publish_config.publish_device = 5
5140
- publish_config.need_volume_analyser = true
5141
- publish_config.video_profile_type = 1
5142
- publish_config.degradationType = 2
5143
- publish_config.stream = stream
5144
- publish_config.publish_video_id = 'video20'
5145
- publish_config.publish_streamId_id = 'subscribe_streamId10'
5146
- publish_config.publish_tag = 'projectionWhiteboard'
5147
- this.test_controller.Publish(publish_config)
5148
-
5149
4315
  stream.getVideoTracks()[0].onended = async () => {
5150
4316
  //单击停止共享按钮后,触发这个事件
5151
4317
  streamShare = ''
@@ -5368,14 +4534,14 @@ class Video extends Component {
5368
4534
  // publish_config.video_profile_diy={width:640, height:360, frameRate:15, bitrate:400}
5369
4535
  // this.test_controller.ChangeMediaStream(publish_config)
5370
4536
  // beautyNum = beautyNum == 0 ? 1 : 0
5371
- if (beautyType) {
5372
- beautyType = false
4537
+ if (this.state.beautyType) {
4538
+ this.state.beautyType = false
5373
4539
  this.setState({
5374
4540
  beautyName: '开启美颜'
5375
4541
  })
5376
4542
  beautySetMode('none')
5377
4543
  } else {
5378
- beautyType = true
4544
+ this.state.beautyType = true
5379
4545
  beautySetMode('beauty')
5380
4546
  this.setState({
5381
4547
  beautyName: '关闭美颜'
@@ -5566,27 +4732,33 @@ class Video extends Component {
5566
4732
  }
5567
4733
  }
5568
4734
  handleChangeCertificateValidity = (event) => {
5569
- if(this.state.documentType == 'ID_CARD' && event.target.value.split('-').length >1 && event.target.value.split('-')[1].split('.').length >2) {
4735
+ // 护照只有起始日期,单独处理
4736
+ if (this.state.documentType == 'PASSPORT_CARD' && event.target.value.split('.').length >2) {
4737
+ if(this.dateNewTime(event.target.value)) {
4738
+ this.setState({
4739
+ certificateValidity: event.target.value,
4740
+ certificateValidityType: true
4741
+ });
4742
+ } else {
4743
+ this.setState({
4744
+ certificateValidity: event.target.value,
4745
+ certificateValidityType: false
4746
+ });
4747
+ }
4748
+ } else if (event.target.value.split('-').length >1 && event.target.value.split('-')[1].split('.').length >2) {
5570
4749
  if(this.dateNewTime(event.target.value.split('-')[1])) {
5571
4750
  this.setState({
5572
4751
  certificateValidity: event.target.value,
5573
4752
  certificateValidityType: true
5574
4753
  });
5575
-
5576
4754
  } else {
5577
4755
  this.setState({
5578
4756
  certificateValidity: event.target.value,
5579
4757
  certificateValidityType: false
5580
4758
  });
5581
4759
  }
5582
- } else{
5583
- this.setState({
5584
- certificateValidity: event.target.value,
5585
- });
5586
4760
  }
5587
4761
 
5588
-
5589
-
5590
4762
  }
5591
4763
  componentDidUpdate(prevProps) {
5592
4764
  console.log('componentDidUpdate', prevProps, prevProps.shareMask, this.props.shareMask)
@@ -5610,7 +4782,7 @@ class Video extends Component {
5610
4782
  documentType: '',
5611
4783
  isCustomerSelect: true,
5612
4784
  customerSelect: this.state.customerList.length == 1 ? 1 : '',
5613
- customerTitleName: '客户身份识别'
4785
+ customerTitleName: '客户身份验证'
5614
4786
  })
5615
4787
  }
5616
4788
  handleOkCustomer = () => {
@@ -5639,15 +4811,27 @@ class Video extends Component {
5639
4811
  "data": {
5640
4812
  'sessionId': this.state.sessionId,
5641
4813
  'userId': this.state.customerList[this.state.customerSelect - 1].customId,
5642
- 'title': '为了有效确认客户身份,请您配合进行我行的身份识别和核验。请您阅读以下内容,若您同意,请您之后在摄像头前出示您的身份证件,我行将对您的身份证件拍照并采集证件信息;同时,我行会对您进行脸部拍照,采集您的脸部图像。',
4814
+ 'title': '为了有效确认客户身份,请您配合汇丰银行(中国)有限公司(”我行”)进行身份识别和核验。请您阅读以下内容。若您同意,请您之后在摄像头前出示您的身份证件,我行将对您的身份证件拍照并采集证件信息;同时,我行会对您进行脸部拍照,采集您的脸部图像。',
4815
+ 'title_en': 'In order to confirm client’s identify, please cooperate with HSBC (China) Co., Ltd. (“the bank”) for identity verification. Please read the following and provide your authorization to the bank to capture your ID image and information, take picture of your face and retain them for identification and verification purpose.',
4816
+ 'navBarTitle': '客户授权',
4817
+ 'navBarTitle_en': 'Customer Authorization',
5643
4818
  'list': [
5644
4819
  {
5645
4820
  'id': 1,
5646
- 'content': '您是否授权汇丰中国对您的证件以及脸部进行拍照,采集并留存您的证件信息以及脸部图像以便我行进行身份识别?'
4821
+ 'content': '您是否授权我行对您的证件以及脸部进行拍照,采集并留存您的证件信息以及脸部图像以便我行进行身份识别?',
4822
+ 'content_en': 'Do you agree the bank to photograph your ID and face image, collect and retain ID information and face image for identification?'
5647
4823
  },
5648
4824
  {
5649
4825
  'id': 2,
5650
- 'content': '为了通过人脸对比进行身份识别和核验,我行需要将您的姓名、身份证件号码和脸部图像发送给中国人民银行或全国公民身份证号码查询服务中心授权的第三方,并由第三方进一步发送至中国人民银行或全国公民身份证号码查询服务中心进行人脸对比或信息核对。'
4826
+ 'content': '为了通过人脸对比进行身份识别和核验,我行需要将您的姓名、身份证件号码和脸部图像发送给中国公安系统(包括其所属机构及代理机构)进行人脸对比及信息核对。',
4827
+ 'content_en': 'For further identification and verification purpose, do you agree the bank to send your name, ID number and face image to the public security authority (including its affiliates or agencies) to perform the identification and information verification process?'
4828
+ },
4829
+ {
4830
+ 'id': 3,
4831
+ 'content': '本人同意使用电子签名方式签署作为陪同者所需签署的文件,并授权汇丰银行(中国)有限公司(“汇丰中国”)通过电子签名服务供应商向第三方认证机构提供本人的姓名和身份证件号码,用以申请本人专属的数字证书,本人在电子设备上签署文件即表明本人指示汇丰中国使用本人专属电子证书对该等文件进行电子签名。本人知悉并同意,电子签名和手写签名具有同等法律效力。 \n说明:电子签名服务供应商和第三方认证机构的名称和联系方式如下:' +
4832
+ '\n电子签名服务供应商:杭州尚尚签网络科技有限公司(联系电话:4009936665)\n第三方认证机构: \n北京天威诚信电子商务服务有限公司(联系电话:010-50947500)\n中金金融认证中心有限公司(联系电话:010-83526655)',
4833
+ 'content_en': 'To sign in the relevant document required as companion, do you agree to adopt electronic signature in it? And you shall authorize HSBC (China) Co., Ltd to provide your name and identity document number to the certificate authority through the electronic signature service provider to apply for your own digital certificate. By signing the document on the electronic device, you authorize HSBC (China) Co., Ltd to use your digital certificate and apply your electronic signature to the documents. You understand and agree that electronic signature has the same legal effect as handwritten signature.' +
4834
+ '\nPlease be noted the names and contact information of the electronic signature service provider and the certificate authority are as follows:\nElectronic signature service provider: Hangzhou BestSign Network Technology Co. Ltd. (Contact: 4009936665) \nCertificate Authority: \nChina Financial Certification Authority (Contact: 010-83526655)\niTrusChina Co., Ltd (Contact: 010-50947500)'
5651
4835
  }
5652
4836
  ]
5653
4837
  }
@@ -5659,11 +4843,22 @@ class Video extends Component {
5659
4843
  "data": {
5660
4844
  'sessionId': this.state.sessionId,
5661
4845
  'userId': this.state.customerList[this.state.customerSelect - 1].customId,
5662
- 'title': '为了有效确认客户身份,请您配合进行我行的身份识别。请您阅读以下内容,若您同意,请您之后在摄像头前出示您的身份证件,我行将对您的身份证件拍照并采集证件信息;',
4846
+ 'title': '为了有效确认客户身份,请您配合汇丰银行(中国)有限公司(“我行”)进行身份识别。请您阅读以下内容,若您同意,请您之后在摄像头前出示您的身份证件,我行将对您的身份证件拍照并采集证件信息;',
4847
+ 'title_en': 'In order to confirm client’s identify, please cooperate with HSBC (China) Co., Ltd. (“the bank”) for identity verification. Please read the following and provide your authorization to the bank to capture your ID image and information and retain them for identification and verification purpose. ',
4848
+ 'navBarTitle': '客户授权',
4849
+ 'navBarTitle_en': 'Customer Authorization',
5663
4850
  'list': [
5664
4851
  {
5665
4852
  'id': 1,
5666
- 'content': '您是否授权汇丰中国对您的证件进行拍照,采集并留存您的证件信息以便我行进行身份确认?'
4853
+ 'content': '您是否授权我行对您的证件进行拍照,采集并留存您的证件信息以便我行进行身份确认?',
4854
+ 'content_en': 'Do you agree the bank to photograph your ID ,collect and retain ID information and for identification?'
4855
+ },
4856
+ {
4857
+ 'id': 2,
4858
+ 'content': '对于陪同者所需签署的文件,您是否同意使用电子签名方式签署,并授权汇丰银行(中国)有限公司(“汇丰中国”)通过电子签名服务供应商向第三方认证机构提供您本人的姓名和身份证件号码,用以申请您本人专属的数字证书?您本人在电子设备上签署文件即表明您本人指示汇丰中国使用您本人专属电子证书对该等文件进行电子签名。您本人知悉并同意,电子签名和手写签名具有同等法律效力。 \n说明:电子签名服务供应商和第三方认证机构的名称和联系方式如下:' +
4859
+ '\n电子签名服务供应商:杭州尚尚签网络科技有限公司(联系电话:4009936665)\n第三方认证机构: \n北京天威诚信电子商务服务有限公司(联系电话:010-50947500)\n中金金融认证中心有限公司(联系电话:010-83526655)',
4860
+ 'content_en': 'To sign in the relevant document required as companion, do you agree to adopt electronic signature in it? And you shall authorize HSBC (China) Co., Ltd to provide your name and identity document number to the certificate authority through the electronic signature service provider to apply for your own digital certificate. By signing the document on the electronic device, you authorize HSBC (China) Co., Ltd to use your digital certificate and apply your electronic signature to the documents. You understand and agree that electronic signature has the same legal effect as handwritten signature.' +
4861
+ '\nPlease be noted the names and contact information of the electronic signature service provider and the certificate authority are as follows:\nElectronic signature service provider: Hangzhou BestSign Network Technology Co. Ltd. (Contact: 4009936665) \nCertificate Authority: \nChina Financial Certification Authority (Contact: 010-83526655)\niTrusChina Co., Ltd (Contact: 010-50947500)'
5667
4862
  }
5668
4863
  ]
5669
4864
  }
@@ -5689,6 +4884,7 @@ class Video extends Component {
5689
4884
  let result = await API.getAuthorizeResult({
5690
4885
  activityId: this.props.businessNumber,
5691
4886
  appAccount: appAccount,
4887
+ certificateType: this.state.documentType == 'ID_CARD'? 'ID': 'NID'
5692
4888
  });
5693
4889
  console.log(result)
5694
4890
  if (result.code == 200 && result.data.ifAuthorize) {
@@ -5734,6 +4930,52 @@ class Video extends Component {
5734
4930
  console.log(err)
5735
4931
  }
5736
4932
  }
4933
+ // 视频窗口排序
4934
+ videoListSort = () => {
4935
+ console.log(this.state.videoList)
4936
+ let list = [...this.state.videoList]
4937
+ list.sort((a, b)=>{
4938
+ // 判断是否有客户
4939
+ if (!b.videoName && a.videoName){
4940
+ return -1
4941
+ }
4942
+ if (!a.videoName && b.videoName){
4943
+ return 1
4944
+ }
4945
+ // 判断是否是坐席
4946
+ // if (a.isTeller != b.isTeller) {
4947
+ // return a.isTeller ? -1 : 1
4948
+ // }
4949
+ // 判断是否是内网pib
4950
+ if (a.isPIBIntranet != b.isPIBIntranet){
4951
+ return !a.isPIBIntranet ? -1 : 1
4952
+ }
4953
+
4954
+ // 判断行内或行外客户
4955
+ if (a.userSide != b.userSide){
4956
+ return a.userSide == 2 ? -1 : 1
4957
+ }
4958
+
4959
+ // 判断行外客户是否做过ocr
4960
+ if (a.hasOcr != b.hasOcr) {
4961
+ return (b.hasOcr || 0) - (a.hasOcr || 0)
4962
+ }
4963
+
4964
+ return a.idIndex - b.idIndex;
4965
+ })
4966
+ console.log('排序后list', list);
4967
+ for(let i=0;i<12;i++){
4968
+ for(let j=0;j<12;j++){
4969
+ if (list[j].videoName == this.state.videoList[i].videoName) {
4970
+ this.state.videoList[i].order = j
4971
+ }
4972
+ }
4973
+ }
4974
+ // console.log(this.state.videoList)
4975
+ this.setState({
4976
+ videoList: this.state.videoList
4977
+ })
4978
+ }
5737
4979
  videoListClick=()=>{
5738
4980
  // console.log(Math.trunc(document.getElementById("videoList").getBoundingClientRect().height),document.getElementById("videoList").scrollHeight)
5739
4981
  // if(Math.trunc(document.getElementById("videoList").getBoundingClientRect().height) >= document.getElementById("videoList").scrollHeight && this.state.isVideoList) {
@@ -5872,7 +5114,7 @@ class Video extends Component {
5872
5114
  <CanvasHome zIndexNum={this.state.zIndexNum} style={{ width: isGraffiti ? this.state.widthVideo + 'px' : this.state.whiteboardWidth + 'Px', height: this.state.whiteboardHeight + 'Px', top: this.state.whiteboardTop + 'Px', left: isGraffiti ? this.state.leftVideo + 'px' : this.state.whiteboardLeft + 'Px' }}>
5873
5115
  {this.state.operateShow &&
5874
5116
  <OpreateDiv id="operate">
5875
- <span style={{ color: this.state.selectSpan == 'pen' ? '#1890ff' : '#333' }} onClick={() => this.setTool('pen')}>铅笔</span>
5117
+ <span style={{ color: this.state.selectSpan == 'pen' ? '#1890ff' : '#333' }} onClick={() => this.setTool('pen')}>黑笔</span>
5876
5118
  <span style={{ color: this.state.selectSpan == 'redPen' ? '#1890ff' : '#333' }} onClick={() => this.setStrokeColor()}>红笔</span>
5877
5119
  <span style={{ color: this.state.selectSpan == 'eraser' ? '#1890ff' : '#333' }} onClick={() => this.setTool('eraser')}>橡皮</span>
5878
5120
  <span onClick={() => this.setOpreate('undo')}>撤销</span>
@@ -5947,6 +5189,13 @@ class Video extends Component {
5947
5189
 
5948
5190
  </ul>
5949
5191
  </div>
5192
+ {!this.state.loading && this.state.sessionId?
5193
+ <QRCode
5194
+ style={{'position': 'absolute', 'right': '10px', 'top': '-110px'}}
5195
+ value={this.state.sessionId} //value参数为生成二维码的链接
5196
+ size={100} //二维码的宽高尺寸
5197
+ fgColor="#000000" //二维码的颜色
5198
+ /> : null}
5950
5199
  </div>
5951
5200
  }
5952
5201
 
@@ -5984,365 +5233,71 @@ class Video extends Component {
5984
5233
  </div>
5985
5234
 
5986
5235
  </div>
5987
- <div
5988
- className={`itemed ${this.state.isVideoList? 'videoMinutuListClass': 'videoMinutuClass'}`}
5989
- style={{ position: "relative", display: (this.state.videoOneName) ? '' : 'none' }}
5236
+ {/* <div className={`itemed ${this.state.isVideoList? 'videoMinutuListClass': 'videoMinutuClass'}`}
5237
+ style={{ position: "relative", display: (this.state.videoList[0].videoName) ? '' : 'none' }}
5990
5238
  >
5991
- {
5992
- this.state.customAudioed && <img
5993
- alt=""
5994
- src={require("../../assets/img/yingpin.png").default}
5995
- style={{ width: "100%", height: "100%", }}
5996
- ></img>
5997
- }
5998
5239
  <div className="video1Div">
5999
5240
  <video
6000
5241
  id="video1"
6001
5242
  autoPlay
6002
5243
  muted={true}
6003
5244
  disablePictureInPicture
6004
- className={`video1 ${this.state.noVideoOne ? 'isNoVideo' : ''}`}
5245
+ className={`video1 ${this.state.videoList[0].noVideo ? 'isNoVideo' : ''}`}
6005
5246
  />
6006
5247
  <audio id="audio1" autoPlay />
6007
5248
  <label style={{ display: 'none' }} id="feedId1" type="text" />
6008
5249
 
6009
- <div style={{ display: (this.state.videoOneName) ? '' : 'none' }} className={`customerTitle titleSamlle`}>
5250
+ <div style={{ display: (this.state.videoList[0].videoName) ? '' : 'none' }} className={`customerTitle titleSamlle`}>
6010
5251
  <div onClick={this.muteOpposite.bind(this, 'video1')}>
6011
5252
  {
6012
- this.state.voiceVideoOne && <img
5253
+ this.state.videoList[0].mute && <img
6013
5254
  alt=""
6014
5255
  src={require("../../assets/img/jingyin.png").default}
6015
5256
  className="imgClassVoice voiceVideoClass"
6016
5257
  />
6017
5258
  }
6018
- <canvas style={{ display: (this.state.videoOneName && !this.state.voiceVideoOne) ? '' : 'none', width: '25px', height: '25px', marginTop: '4px' }} className="canvasClassOne" id="subscribe_volumeView1" width="40" height="70"></canvas>
5259
+ <canvas style={{ display: (this.state.videoList[0].videoName && !this.state.videoList[0].mute) ? '' : 'none', width: '25px', height: '25px', marginTop: '4px' }} className="canvasClassOne" id="subscribe_volumeView1" width="40" height="70"></canvas>
6019
5260
  </div>
6020
5261
  <div className='titleName' style={{ color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }}>
6021
- {this.state.videoOneName}
5262
+ {this.state.videoList[0].videoName}
6022
5263
  </div>
6023
5264
 
6024
5265
 
6025
5266
  </div>
6026
5267
  </div>
6027
- </div>
6028
- <div className={`itemed ${this.state.isVideoList? 'videoMinutuListClass': 'videoMinutuClass'}`} style={{ display: (this.state.videoTwoName) ? '' : 'none', }}>
6029
- <video
6030
- id="video2"
6031
- autoPlay
6032
- disablePictureInPicture
6033
- muted={true}
6034
- className={`video ${this.state.noVideoTwo ? 'isNoVideo' : ''}`}
6035
- />
6036
- <audio id="audio2" autoPlay />
6037
- <label style={{ display: 'none' }} id="feedId2" type="text" />
6038
-
6039
- <div style={{ display: (this.state.videoTwoName) ? '' : 'none' }} className={`customerTitle titleSamlle`}>
6040
- <div onClick={this.muteOpposite.bind(this, 'video2')}>
6041
- {
6042
- this.state.voiceVideoTwo && <img
6043
- alt=""
6044
- src={require("../../assets/img/jingyin.png").default}
6045
- className="imgClassVoice voiceVideoClass"
6046
- />
6047
- }
6048
- <canvas style={{ display: (this.state.videoTwoName && !this.state.voiceVideoTwo) ? '' : 'none', width: '25px', height: '25px', marginTop: '4px' }} className="canvasClassOne" id="subscribe_volumeView2" width="40" height="70"></canvas>
6049
- </div>
6050
- <div className='titleName' style={{ color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }}>
6051
- {this.state.videoTwoName}
6052
- </div>
6053
- </div>
6054
- </div>
6055
- <div className={`itemed ${this.state.isVideoList? 'videoMinutuListClass': 'videoMinutuClass'}`}
6056
- style={{ display: (this.state.videoThreeName) ? '' : 'none' }}>
6057
- <video
6058
- id="video3"
6059
- autoPlay
6060
- muted={true}
6061
- disablePictureInPicture
6062
- className={`video ${this.state.noVideoThree ? 'isNoVideo' : ''}`}
6063
- />
6064
- <audio id="audio3" autoPlay />
6065
- <label style={{ display: 'none' }} id="feedId3" type="text" />
6066
-
6067
- <div style={{ display: (this.state.videoThreeName) ? '' : 'none', background: this.props.titleBackground, color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }} className={`customerTitle titleSamlle`}>
6068
- <div onClick={this.muteOpposite.bind(this, 'video3')}>
6069
- {
6070
- this.state.voiceVideoThree && <img
6071
- alt=""
6072
- src={require("../../assets/img/jingyin.png").default}
6073
- className="imgClassVoice voiceVideoClass"
6074
- />
6075
- }
6076
- <canvas style={{ display: (this.state.videoThreeName && !this.state.voiceVideoThree) ? '' : 'none', width: '25px', height: '25px', marginTop: '4px' }} className="canvasClassOne" id="subscribe_volumeView3" width="40" height="70"></canvas>
6077
- </div>
6078
- <div className='titleName' style={{ color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }}>
6079
- {this.state.videoThreeName}
6080
- </div>
6081
- </div>
6082
- </div>
6083
- <div className={`itemed ${this.state.isVideoList? 'videoMinutuListClass': 'videoMinutuClass'}`} style={{ display: (this.state.videoFourName) ? '' : 'none', }}>
6084
- <video
6085
- id="video4"
6086
- autoPlay
6087
- muted={true}
6088
- disablePictureInPicture
6089
- className={`video ${this.state.noVideoFour ? 'isNoVideo' : ''}`}
6090
- />
6091
- <audio id="audio4" autoPlay />
6092
- <label style={{ display: 'none' }} id="feedId4" type="text" />
6093
-
6094
- <div style={{ display: (this.state.videoFourName) ? '' : 'none', background: this.props.titleBackground, color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }} className={`customerTitle titleSamlle`}>
6095
- <div onClick={this.muteOpposite.bind(this, 'video4')}>
6096
- {
6097
- this.state.voiceVideoFour && <img
6098
- alt=""
6099
- src={require("../../assets/img/jingyin.png").default}
6100
- className="imgClassVoice voiceVideoClass"
6101
- />
6102
- }
6103
- <canvas style={{ display: (this.state.videoFourName && !this.state.voiceVideoFour) ? '' : 'none', width: '25px', height: '25px', marginTop: '4px' }} className="canvasClassOne" id="subscribe_volumeView4" width="40" height="70"></canvas>
6104
- </div>
6105
- <div className='titleName' style={{ color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }}>
6106
- {this.state.videoFourName}
6107
- </div>
6108
- </div>
6109
- </div>
6110
- <div className={`itemed ${this.state.isVideoList? 'videoMinutuListClass': 'videoMinutuClass'}`}
6111
- style={{ display: (this.state.videoFiveName) ? '' : 'none' }}>
6112
- <video
6113
- id="video5"
6114
- autoPlay
6115
- muted={true}
6116
- disablePictureInPicture
6117
- className={`video ${this.state.noVideoFive ? 'isNoVideo' : ''}`}
6118
- />
6119
- <audio id="audio5" autoPlay />
6120
- <label style={{ display: 'none' }} id="feedId5" type="text" />
6121
-
6122
- <div style={{ display: (this.state.videoFiveName) ? '' : 'none', background: this.props.titleBackground, color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }} className={`customerTitle titleSamlle`}>
6123
- <div onClick={this.muteOpposite.bind(this, 'video5')}>
6124
- {
6125
- this.state.voiceVideoFive && <img
6126
- alt=""
6127
- src={require("../../assets/img/jingyin.png").default}
6128
- className="imgClassVoice voiceVideoClass"
6129
- />
6130
- }
6131
- <canvas style={{ display: (this.state.videoFiveName && !this.state.voiceVideoFive) ? '' : 'none', width: '25px', height: '25px', marginTop: '4px' }} className="canvasClassOne" id="subscribe_volumeView5" width="40" height="70"></canvas>
6132
- </div>
6133
- <div className='titleName' style={{ color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }}>
6134
- {this.state.videoFiveName}
6135
- </div>
6136
- </div>
6137
- </div>
6138
- <div className={`itemed ${this.state.isVideoList? 'videoMinutuListClass': 'videoMinutuClass'}`} style={{ display: (this.state.videoSixName) ? '' : 'none', }}>
6139
- <video
6140
- id="video6"
6141
- autoPlay
6142
- muted={true}
6143
- disablePictureInPicture
6144
- className={`video ${this.state.noVideoSix ? 'isNoVideo' : ''}`}
6145
- />
6146
- <audio id="audio6" autoPlay />
6147
- <label style={{ display: 'none' }} id="feedId6" type="text" />
6148
-
6149
- <div style={{ display: (this.state.videoSixName) ? '' : 'none', background: this.props.titleBackground, color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }} className={`customerTitle titleSamlle`}>
6150
- <div onClick={this.muteOpposite.bind(this, 'video6')}>
6151
- {
6152
- this.state.voiceVideoSix && <img
6153
- alt=""
6154
- src={require("../../assets/img/jingyin.png").default}
6155
- className="imgClassVoice voiceVideoClass"
6156
- />
6157
- }
6158
- <canvas style={{ display: (!this.state.voiceVideoSix) ? '' : 'none', width: '25px', height: '25px', marginTop: '4px' }} className="canvasClassOne" id="subscribe_volumeView6" width="40" height="70"></canvas>
6159
- </div>
6160
- <div className='titleName' style={{ color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }}>
6161
- {this.state.videoSixName}
6162
- </div>
6163
- </div>
5268
+ </div> */}
6164
5269
 
6165
- </div>
6166
- <div
6167
- className={`itemed ${this.state.isVideoList? 'videoMinutuListClass': 'videoMinutuClass'}`}
6168
- style={{ position: "relative", display: (this.state.videoSevenName) ? '' : 'none' }}
6169
- >
6170
- {
6171
- this.state.customAudioed && <img
6172
- alt=""
6173
- src={require("../../assets/img/yingpin.png").default}
6174
- style={{ width: "100%", height: "100%", }}
6175
- ></img>
6176
- }
6177
- <div className="video1Div" style={{ display: (!this.state.customAudioed) ? '' : 'none', }}>
5270
+ {
5271
+ this.state.videoList.map((item,index)=>{
5272
+ // if (index!=0)
5273
+ return <div key={index} className={`itemed ${this.state.isVideoList? 'videoMinutuListClass': 'videoMinutuClass'}`} style={{ display: (item.videoName) ? '' : 'none', 'order': item.order}}>
6178
5274
  <video
6179
- id="video7"
5275
+ id={'video'+(item.idIndex)}
6180
5276
  autoPlay
6181
5277
  muted={true}
6182
5278
  disablePictureInPicture
6183
- className={`video ${this.state.noVideoSeven ? 'isNoVideo' : ''}`}
5279
+ className={`video ${item.noVideo ? 'isNoVideo' : ''}`}
6184
5280
  />
6185
- <audio id="audio7" autoPlay />
6186
- <label style={{ display: 'none' }} id="feedId7" type="text" />
5281
+ <audio id={'audio'+(item.idIndex)} autoPlay />
5282
+ <label style={{ display: 'none' }} id={'feedId'+(item.idIndex)} type="text" />
5283
+
5284
+ <div style={{ display: (item.videoName) ? '' : 'none'}} className={`customerTitle titleSamlle`}>
5285
+ {
5286
+ item.mute && <img
5287
+ alt=""
5288
+ src={require("../../assets/img/jingyin.png").default}
5289
+ className="imgClassVoice voiceVideoClass"
5290
+ />
5291
+ }
5292
+ <canvas style={{ display: (item.videoName && !item.mute) ? '' : 'none',width: '25px',height:'25px',marginTop: '4px' }} className="canvasClassOne" id={"subscribe_volumeView"+(item.idIndex)} width="40" height="70"></canvas>
6187
5293
 
6188
- <div style={{ display: (this.state.videoSevenName) ? '' : 'none' }} className={`customerTitle titleSamlle`}>
6189
- <div onClick={this.muteOpposite.bind(this, 'video7')}>
6190
- {
6191
- this.state.voiceVideoSeven && <img
6192
- alt=""
6193
- src={require("../../assets/img/jingyin.png").default}
6194
- className="imgClassVoice voiceVideoClass"
6195
- />
6196
- }
6197
- <canvas style={{ display: (this.state.videoSevenName && !this.state.voiceVideoSeven) ? '' : 'none', width: '25px', height: '25px', marginTop: '4px' }} className="canvasClassOne" id="subscribe_volumeView7" width="40" height="70"></canvas>
6198
- </div>
6199
- <div className='titleName' style={{ color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }}>
6200
- {this.state.videoSevenName}
5294
+ <div className='titleName' style={{ color: this.props.titleColor,fontSize: this.props.fontSize + 'px',fontFamily : this.props.fontFamily}}>
5295
+ {item.videoName}
6201
5296
  </div>
6202
-
6203
-
6204
- </div>
6205
- </div>
6206
- </div>
6207
- <div className={`itemed ${this.state.isVideoList? 'videoMinutuListClass': 'videoMinutuClass'}`} style={{ display: (this.state.videoEightName) ? '' : 'none', }}>
6208
- <video
6209
- id="video8"
6210
- autoPlay
6211
- muted={true}
6212
- disablePictureInPicture
6213
- className={`video ${this.state.noVideoEight ? 'isNoVideo' : ''}`}
6214
- />
6215
- <audio id="audio8" autoPlay />
6216
- <label style={{ display: 'none' }} id="feedId8" type="text" />
6217
-
6218
- <div style={{ display: (this.state.videoEightName) ? '' : 'none' }} className={`customerTitle titleSamlle`}>
6219
- <div onClick={this.muteOpposite.bind(this, 'video8')}>
6220
- {
6221
- this.state.voiceVideoEight && <img
6222
- alt=""
6223
- src={require("../../assets/img/jingyin.png").default}
6224
- className="imgClassVoice voiceVideoClass"
6225
- />
6226
- }
6227
- <canvas style={{ display: (this.state.videoEightName && !this.state.voiceVideoEight) ? '' : 'none', width: '25px', height: '25px', marginTop: '4px' }} className="canvasClassOne" id="subscribe_volumeView8" width="40" height="70"></canvas>
6228
- </div>
6229
- <div className='titleName' style={{ color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }}>
6230
- {this.state.videoEightName}
6231
- </div>
6232
- </div>
6233
- </div>
6234
- <div className={`itemed ${this.state.isVideoList? 'videoMinutuListClass': 'videoMinutuClass'}`} style={{ display: (this.state.videoNineName) ? '' : 'none', }}>
6235
- <video
6236
- id="video9"
6237
- autoPlay
6238
- muted={true}
6239
- disablePictureInPicture
6240
- className={`video ${this.state.noVideoNine ? 'isNoVideo' : ''}`}
6241
- />
6242
- <audio id="audio9" autoPlay />
6243
- <label style={{ display: 'none' }} id="feedId9" type="text" />
6244
-
6245
- <div style={{ display: (this.state.videoNineName) ? '' : 'none', background: this.props.titleBackground, color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }} className={`customerTitle titleSamlle`}>
6246
- <div onClick={this.muteOpposite.bind(this, 'video9')}>
6247
- {
6248
- this.state.voiceVideoNine && <img
6249
- alt=""
6250
- src={require("../../assets/img/jingyin.png").default}
6251
- className="imgClassVoice voiceVideoClass"
6252
- />
6253
- }
6254
- <canvas style={{ display: (this.state.videoNineName && !this.state.voiceVideoSix) ? '' : 'none', width: '25px', height: '25px', marginTop: '4px' }} className="canvasClassOne" id="subscribe_volumeView9" width="40" height="70"></canvas>
6255
- </div>
6256
- <div className='titleName' style={{ color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }}>
6257
- {this.state.videoNineName}
6258
- </div>
6259
- </div>
6260
-
6261
- </div>
6262
- <div className={`itemed ${this.state.isVideoList? 'videoMinutuListClass': 'videoMinutuClass'}`}
6263
- style={{ display: (this.state.videoTenName) ? '' : 'none' }}>
6264
- <video
6265
- id="video10"
6266
- autoPlay
6267
- muted={true}
6268
- disablePictureInPicture
6269
- className={`video ${this.state.noVideoTen ? 'isNoVideo' : ''}`}
6270
- />
6271
- <audio id="audio10" autoPlay />
6272
- <label style={{ display: 'none' }} id="feedId10" type="text" />
6273
-
6274
- <div style={{ display: (this.state.videoTenName) ? '' : 'none', background: this.props.titleBackground, color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }} className={`customerTitle titleSamlle`}>
6275
- <div onClick={this.muteOpposite.bind(this, 'video10')}>
6276
- {
6277
- this.state.voiceVideoTen && <img
6278
- alt=""
6279
- src={require("../../assets/img/jingyin.png").default}
6280
- className="imgClassVoice voiceVideoClass"
6281
- />
6282
- }
6283
- <canvas style={{ display: (this.state.videoTenName && !this.state.voiceVideoTen) ? '' : 'none', width: '25px', height: '25px', marginTop: '4px' }} className="canvasClassOne" id="subscribe_volumeView10" width="40" height="70"></canvas>
6284
- </div>
6285
- <div className='titleName' style={{ color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }}>
6286
- {this.state.videoTenName}
6287
- </div>
6288
- </div>
6289
- </div>
6290
- <div className={`itemed ${this.state.isVideoList? 'videoMinutuListClass': 'videoMinutuClass'}`} style={{ display: (this.state.videoElevenName) ? '' : 'none', }}>
6291
- <video
6292
- id="video11"
6293
- autoPlay
6294
- muted={true}
6295
- disablePictureInPicture
6296
- className={`video ${this.state.noVideoEleven ? 'isNoVideo' : ''}`}
6297
- />
6298
- <audio id="audio11" autoPlay />
6299
- <label style={{ display: 'none' }} id="feedId11" type="text" />
6300
-
6301
- <div style={{ display: (this.state.videoElevenName) ? '' : 'none', background: this.props.titleBackground, color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }} className={`customerTitle titleSamlle`}>
6302
- <div onClick={this.muteOpposite.bind(this, 'video11')}>
6303
- {
6304
- this.state.voiceVideoEleven && <img
6305
- alt=""
6306
- src={require("../../assets/img/jingyin.png").default}
6307
- className="imgClassVoice voiceVideoClass"
6308
- />
6309
- }
6310
- <canvas style={{ display: (this.state.videoElevenName && !this.state.voiceVideoEleven) ? '' : 'none', width: '25px', height: '25px', marginTop: '4px' }} className="canvasClassOne" id="subscribe_volumeView11" width="40" height="70"></canvas>
6311
- </div>
6312
- <div className='titleName' style={{ color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }}>
6313
- {this.state.videoElevenName}
6314
- </div>
6315
- </div>
6316
- </div>
6317
- <div className={`itemed ${this.state.isVideoList? 'videoMinutuListClass': 'videoMinutuClass'}`}
6318
- style={{ display: (this.state.videoTwelveName) ? '' : 'none' }}>
6319
- <video
6320
- id="video12"
6321
- autoPlay
6322
- muted={true}
6323
- disablePictureInPicture
6324
- className={`video ${this.state.noVideoTwelve ? 'isNoVideo' : ''}`}
6325
- />
6326
- <audio id="audio12" autoPlay />
6327
- <label style={{ display: 'none' }} id="feedId12" type="text" />
6328
-
6329
- <div style={{ display: (this.state.videoTwelveName) ? '' : 'none', background: this.props.titleBackground, color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }} className={`customerTitle titleSamlle`}>
6330
- <div onClick={this.muteOpposite.bind(this, 'video12')}>
6331
- {
6332
- this.state.voiceVideoTwelve && <img
6333
- alt=""
6334
- src={require("../../assets/img/jingyin.png").default}
6335
- className="imgClassVoice voiceVideoClass"
6336
- />
6337
- }
6338
- <canvas style={{ display: (this.state.videoTwelveName && !this.state.voiceVideoTwelve) ? '' : 'none', width: '25px', height: '25px', marginTop: '4px' }} className="canvasClassOne" id="subscribe_volumeView12" width="40" height="70"></canvas>
6339
- </div>
6340
- <div className='titleName' style={{ color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }}>
6341
- {this.state.videoTwelveName}
6342
5297
  </div>
6343
5298
  </div>
6344
- </div>
6345
-
5299
+ })
5300
+ }
6346
5301
 
6347
5302
  </div>
6348
5303
  <img id="icon_huatong" style={{ display: 'none' }} src={require("../../assets/img/icon_huatong.png").default}></img>
@@ -6381,7 +5336,7 @@ class Video extends Component {
6381
5336
  virtualization={this.virtualization}
6382
5337
  ></Foot>
6383
5338
  {/* 暂停恢复会话 */}
6384
- <Modal cancelText="取消" okText="确定" visible={this.state.isModalVisible} onOk={this.handleOk}
5339
+ <Modal cancelText="取消" okText="确定" visible={this.state.isModalVisible} maskClosable={false} onOk={this.handleOk}
6385
5340
  onCancel={this.handleCancel}>
6386
5341
  {
6387
5342
  this.state.isSuspend && <span>确定是否恢复会话?</span>
@@ -6391,7 +5346,7 @@ class Video extends Component {
6391
5346
  }
6392
5347
  </Modal>
6393
5348
  {/* 是否退出会议*/}
6394
- <Modal closable={false} centered={true} visible={this.state.isModalVisibleEnd} footer={[
5349
+ <Modal closable={false} centered={true} visible={this.state.isModalVisibleEnd} maskClosable={false} footer={[
6395
5350
  <div key='end'>
6396
5351
  <Button className="modelButtonCancel" onClick={this.handleCancelEnd}>取消</Button>
6397
5352
  <Button className="modelButtonOk" type="primary" danger onClick={this.handleOkEnd}>确定</Button>
@@ -6400,11 +5355,11 @@ class Video extends Component {
6400
5355
  <div className='endModal'>是否要结束并退出会议?</div>
6401
5356
  </Modal>
6402
5357
  {/* ocr及人脸 */}
6403
- <Modal title={this.state.titleModal} width={650} closable={false} centered={true} visible={this.state.isModalVisibleFacial} footer={[
5358
+ <Modal title={this.state.titleModal} width={800} closable={true} maskClosable={false} onCancel={this.handleCancelFacial} centered={true} visible={this.state.isModalVisibleFacial} footer={[
6404
5359
  // ocr及人脸在截图界面的按钮
6405
5360
  this.state.cardResuly == '' && this.state.faceResuly == '' &&<div key='facial'>
6406
5361
  <Button className="modelButtonCancel" onClick={this.handleCancelFacial}>取消</Button>
6407
- <Button className="modelButtonCancel" onClick={this.sgsinImage}>截图</Button>
5362
+ <Button className="modelButtonCancel" onClick={this.sgsinImage}>拍照</Button>
6408
5363
  {/* 再截图后按钮高亮 */}
6409
5364
  {
6410
5365
  this.state.isFaceImage && <Button className="modelButtonOk" type="primary" danger onClick={this.handleOkFacial}>下一步</Button>
@@ -6416,7 +5371,12 @@ class Video extends Component {
6416
5371
  </div>,
6417
5372
  // 人脸识别后的结果界面的按钮
6418
5373
  this.state.cardResuly == '' && this.state.faceResuly != '' &&<div key='facial'>
6419
- <Button className="modelButtonCancel" onClick={this.handleCancelFacial}>完成</Button>
5374
+ {
5375
+ this.state.faceResuly == 'success' && <Button className="modelButtonCancel" onClick={this.handleFinishFacial}>完成</Button>
5376
+ }
5377
+ {
5378
+ this.state.faceResuly == 'fail' && <Button className="modelButtonNo" type="primary" danger>完成</Button>
5379
+ }
6420
5380
  {
6421
5381
  this.state.faceResuly == 'fail' && <Button className="modelButtonOk" type="primary" danger onClick={this.ReIdentification}>重新识别</Button>
6422
5382
  }
@@ -6429,16 +5389,20 @@ class Video extends Component {
6429
5389
  // ocr成功
6430
5390
  this.state.cardResuly == 'success' && <div key='facial'>
6431
5391
  {
6432
- this.state.disabledIdCard && <Button className="modelButtonFaceOk" danger onClick={(e) => this.updateConfirm('noFace')}>修改</Button>
5392
+ this.state.disabledIdCard && <Button className="modelButtonFaceOk" danger onClick={(e) => this.updateConfirm('noFace')}>修正证件信息</Button>
6433
5393
  }
5394
+ <Button className="modelButtonCancel" danger onClick={this.newFaceClick}>返回重拍</Button>
6434
5395
  {
6435
- this.state.documentType == 'ID_CARD' && this.state.certificateValidityType && <Button className="modelButtonFaceOkColor" danger onClick={(e) => this.confirmCallback('face')}>完成并发起人脸识别</Button>
5396
+ this.state.documentType == 'ID_CARD' && this.state.certificateValidityType && <Button className="modelButtonFaceOkColor" danger onClick={(e) => this.handleFinishOcr('face')}>确认信息并发起人脸识别</Button>
6436
5397
  }
6437
5398
  {
6438
- this.state.documentType == 'ID_CARD' && !this.state.certificateValidityType && <Button className="modelButtonFaceOkColorFile" danger >完成并发起人脸识别</Button>
5399
+ this.state.documentType == 'ID_CARD' && !this.state.certificateValidityType && <Button className="modelButtonFaceOkColorFile" danger >确认信息并发起人脸识别</Button>
6439
5400
  }
6440
5401
  {
6441
- this.state.documentType != 'ID_CARD' && <Button className="modelButtonOk" type="primary" danger onClick={(e) => this.confirmCallback('noFace')}>完成</Button>
5402
+ this.state.documentType != 'ID_CARD' &&this.state.certificateValidityType && <Button className="modelButtonOk" type="primary" danger onClick={(e) => this.handleFinishOcr('noFace')}>完成</Button>
5403
+ }
5404
+ {
5405
+ this.state.documentType != 'ID_CARD' && !this.state.certificateValidityType && <Button className="modelButtonFaceOkColorFile" danger >完成</Button>
6442
5406
  }
6443
5407
 
6444
5408
  </div>,
@@ -6449,11 +5413,16 @@ class Video extends Component {
6449
5413
  </div>
6450
5414
  ]}>
6451
5415
  <Spin spinning={this.state.loadingFace} tip="识别中...">
5416
+ <div style={{display: 'flex', padding: '10px 20px'}}>
5417
+ <Step style={{marginTop: '10px'}} current={this.state.titleModal == '身份验证'?3:2} ></Step>
6452
5418
  <div className="faceBody">
6453
5419
  {this.state.cardResuly == '' && <div className='faceCardImg'>
6454
5420
 
6455
5421
  {
6456
- this.state.titleModal == 'OCR识别' && <div className='titleDiv'>{this.state.IDtypeFrontOrBack}</div>
5422
+ this.state.titleModal == '拍摄证件照片' && <div className='titleDiv'>{this.state.IDtypeFrontOrBack}</div>
5423
+ }
5424
+ {
5425
+ this.state.titleModal == '身份验证' && this.state.faceResuly == '' && <div className='titleDiv'>请确保陪同者头像清楚显示在前置镜头前</div>
6457
5426
  }
6458
5427
 
6459
5428
  {
@@ -6462,7 +5431,7 @@ class Video extends Component {
6462
5431
  {
6463
5432
  this.state.videoType == 'error' && <div className='errorClassFace videoErrorClass'>
6464
5433
  <img src={require("../../assets/img/tooltips2_fail.png").default} alt="" ></img>
6465
- 请点击“截图”拍摄客户人像的照片。若界面无客户头像显示,请检查网络并保持网络稳定后,点击“截图”重试
5434
+ 请点击“拍照”拍摄客户人像的照片。若界面无客户头像显示,请检查网络并保持网络稳定后,点击“拍照”重试
6466
5435
  </div>
6467
5436
  }
6468
5437
  <video disablePictureInPicture className="faceImg" id="publish_video_2" autoPlay muted={true}></video>
@@ -6480,17 +5449,17 @@ class Video extends Component {
6480
5449
  this.state.cardResuly == 'success' && <div className='successClassFace'>
6481
5450
  <img src={require("../../assets/img/tooltips1_pass.png").default} alt="" ></img>
6482
5451
  {
6483
- this.state.cardFailReason && <span>识别成功 -- {this.state.cardFailReason}</span>
5452
+ this.state.cardFailReason && <span>{this.state.cardFailReason}</span>
6484
5453
  }
6485
5454
  {
6486
- !this.state.cardFailReason && <span>识别成功</span>
5455
+ !this.state.cardFailReason && <span>识别证件信息成功</span>
6487
5456
  }
6488
5457
 
6489
5458
  </div>
6490
5459
  }
6491
5460
  {
6492
5461
  this.state.cardResuly == 'fail' && <div className='errorClassFace'>
6493
- <img src={require("../../assets/img/tooltips2_fail.png").default} alt="" ></img>识别失败--{this.state.cardFailReason}</div>
5462
+ <img src={require("../../assets/img/tooltips2_fail.png").default} alt="" ></img>识别证件信息失败--{this.state.cardFailReason}</div>
6494
5463
  }
6495
5464
  <div className='imgDIV'>
6496
5465
  <img className="faceImgCard" src={this.state.facialImgFront} alt=""></img>
@@ -6506,16 +5475,16 @@ class Video extends Component {
6506
5475
  </div>
6507
5476
  }
6508
5477
  {
6509
- this.state.titleModal == '人脸识别' && this.state.faceResuly != '' && <div className='resuleCard'>
5478
+ this.state.titleModal == '身份验证' && this.state.faceResuly != '' && <div className='resuleCard'>
6510
5479
  {
6511
5480
  this.state.faceResuly == 'success' && <div className='successClassFace'>
6512
5481
  <img src={require("../../assets/img/tooltips1_pass.png").default} alt="" ></img>
6513
5482
 
6514
- 人脸识别成功</div>
5483
+ 认证通过</div>
6515
5484
  }
6516
5485
  {
6517
5486
  this.state.faceResuly == 'fail' && <div className='errorClassFace'>
6518
- <img src={require("../../assets/img/tooltips2_fail.png").default} alt="" ></img>人脸识别失败--{this.state.faceFailReason}</div>
5487
+ <img src={require("../../assets/img/tooltips2_fail.png").default} alt="" ></img>{this.state.faceFailReason}</div>
6519
5488
  }
6520
5489
  <div><span>客户姓名</span> <input disabled type="text" value={this.state.idCardNameFace}/></div>
6521
5490
  <div><span>身份证号</span> <input disabled type="text" value={this.state.idCardNumberFace}/></div>
@@ -6524,9 +5493,10 @@ class Video extends Component {
6524
5493
  }
6525
5494
 
6526
5495
  </div>
5496
+ </div>
6527
5497
  </Spin>
6528
5498
  </Modal>
6529
- <Modal title="经理人员授权" closable={false} centered={true} visible={this.state.isModalVisibleSFP}
5499
+ <Modal title="经理人员授权" closable={false} centered={true} visible={this.state.isModalVisibleSFP} maskClosable={false}
6530
5500
  footer={[
6531
5501
  <div key='end'>
6532
5502
  <Button className="modelButtonCancel" onClick={this.handleCancelSFP}>取消</Button>
@@ -6559,7 +5529,7 @@ class Video extends Component {
6559
5529
  </div>
6560
5530
  </Spin>
6561
5531
  </Modal>
6562
- <Modal title={this.state.customerTitleName} closable={false} centered={true} visible={this.state.isModalVisibleCustomer}
5532
+ <Modal width={650} title={this.state.customerTitleName} closable={false} centered={true} visible={this.state.isModalVisibleCustomer} maskClosable={false}
6563
5533
  footer={[
6564
5534
  <div key='end'>
6565
5535
 
@@ -6591,12 +5561,13 @@ class Video extends Component {
6591
5561
 
6592
5562
  </div>
6593
5563
  ]}>
6594
- <div>
6595
- <div className='selectCustomer'>
5564
+ <div style={{display: 'flex', padding: '10px 20px'}}>
5565
+ <Step current={this.state.isCustomerSelect?0:1}></Step>
5566
+ <div>
6596
5567
  {
6597
5568
  this.state.isCustomerSelect && <div>
6598
- <div>
6599
- 请选择进行身份识别的客户
5569
+ <div className='CustomerSelectTitle'>
5570
+ 请选择进行身份识别的客户(陪同者)
6600
5571
  </div>
6601
5572
  <div>
6602
5573
  <Radio.Group onChange={this.onChangeOCRCustomer} value={this.state.customerSelect}>
@@ -6619,8 +5590,8 @@ class Video extends Component {
6619
5590
  this.state.documentError != '' && <div className='errorClassFace'>
6620
5591
  <img src={require("../../assets/img/tooltips2_fail.png").default} alt="" ></img>{this.state.documentError}</div>
6621
5592
  }
6622
- <div>
6623
- 请您确认您的身份证件类型
5593
+ <div className='CustomerSelectTitle'>
5594
+ 请选择您的身份证件类型
6624
5595
  </div>
6625
5596
  <div>
6626
5597
  <Radio.Group onChange={this.onChangeDocumentType} value={this.state.documentType}>
@@ -6629,7 +5600,7 @@ class Video extends Component {
6629
5600
  <Radio value={'PASSPORT_CARD'}>护照</Radio>
6630
5601
  <Radio value={'TW_PASS_CARD'}>台湾来往大陆通行证</Radio>
6631
5602
  <Radio value={'HK_MO_PASS_CARD'}>港澳来往大陆通行证</Radio>
6632
- <Radio value={'HK_MO_RESIDENCE_CARD'}>港澳台居民居住证</Radio>
5603
+ <Radio value={'HK_MO_RESIDENCE_CARD'}>港澳居民居住证</Radio>
6633
5604
  <Radio value={'TW_RESIDENCE_CARD'}>台湾居民居住证</Radio>
6634
5605
  {/* <Radio value={'FOREIGNER_RESIDENCE_CARD'}>外国人永久居住证</Radio> */}
6635
5606
  </Space>
@@ -6642,7 +5613,7 @@ class Video extends Component {
6642
5613
 
6643
5614
  </Modal>
6644
5615
 
6645
- <Modal className="modelClass" title="邀请参会人员" closable={false} centered={true} visible={this.state.isModalVisibleInvitation} footer={[
5616
+ <Modal className="modelClass" maskClosable={false} title="邀请参会人员" closable={false} centered={true} visible={this.state.isModalVisibleInvitation} footer={[
6646
5617
  <div key='invitation'>
6647
5618
  <Button className="modelButtonCancel" onClick={this.handleCancelInvitation}>取消</Button>
6648
5619
  {
@@ -6698,7 +5669,7 @@ class Video extends Component {
6698
5669
  ></CanvasDraw> */}
6699
5670
  </div>
6700
5671
  </Modal>
6701
- <Modal title="设置视频设备" width={650} closable={false} centered={true} visible={this.state.isModalVisibleInspection} footer={[
5672
+ <Modal title="设置视频设备" maskClosable={false} width={650} closable={false} centered={true} visible={this.state.isModalVisibleInspection} footer={[
6702
5673
  <div key='inspection'>
6703
5674
  <Button className="modelButtonCancel" onClick={this.handleCancelInspection}>取消</Button>
6704
5675
  <Button className="modelButtonOk" type="primary" danger onClick={this.handleOkInspection}>确定</Button>