react_hsbc_teller 1.9.81 → 2.0.1

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.1&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
 
@@ -381,19 +324,23 @@ class Video extends Component {
381
324
  console.log(result);
382
325
  this.state.imRoomId = result.imRoomId,
383
326
  this.state.sessionId = result.sessionId;
384
- let publish_config = {}
385
- publish_config.media_type = 1
386
- publish_config.publish_device = 1
387
- publish_config.videoSource = this.state.cameraValue
388
- publish_config.audioSource = this.state.microphoneValue
389
- publish_config.need_volume_analyser = true
390
- // publish_config.video_profile_type = 3
391
- publish_config.video_profile_type = 100
392
- publish_config.video_profile_diy = { width: 640, height: 360, frameRate: 15, bitrate: 400 }
393
- publish_config.publish_video_id = 'publish_video1'
394
- publish_config.publish_streamId_id = 'publish_streamId1'
395
- publish_config.publish_tag = 'tag1'
396
- this.test_controller.Publish(publish_config)
327
+
328
+ this.state.cameraList.forEach((el, i) => {
329
+ let publish_config = {}
330
+ publish_config.media_type = 1
331
+ publish_config.publish_device = 1
332
+ publish_config.videoSource = el.actionid
333
+ publish_config.audioSource = this.state.microphoneValue
334
+ publish_config.need_volume_analyser = true
335
+ // publish_config.video_profile_type = 3
336
+ publish_config.video_profile_type = 100
337
+ publish_config.video_profile_diy = { width: 640, height: 360, frameRate: 15, bitrate: 400 }
338
+ publish_config.publish_video_id = 'publish_video' + (i+1)
339
+ publish_config.publish_streamId_id = 'publish_streamId' + (i+1)
340
+ publish_config.publish_tag = 'tag' + (i+1)
341
+ this.test_controller.Publish(publish_config)
342
+ })
343
+
397
344
  // eslint-disable-next-line no-undef
398
345
  setTimeout(() => {
399
346
  if (this.state.imStatus && !this.state.imJoinRoom) {
@@ -527,6 +474,7 @@ class Video extends Component {
527
474
  // 允许最大断网时间 (超过未重连, 直接关闭)
528
475
  config_param.network_check_timeout = 10000;
529
476
  this.test_controller.Connect(config_param)
477
+ this.saveLog('mrtc connect start')
530
478
  };
531
479
  // 初始化视频
532
480
  ConnectMRTC = () => {
@@ -542,6 +490,16 @@ class Video extends Component {
542
490
  publish_video_id: 'publish_video1',
543
491
  publish_streamId_id: 'publish_streamId1',
544
492
  publish_tag: 'tag1'
493
+ },
494
+ {
495
+ publish_video_id: 'publish_video2',
496
+ publish_streamId_id: 'publish_streamId2',
497
+ publish_tag: 'tag2'
498
+ },
499
+ {
500
+ publish_video_id: 'publish_video3',
501
+ publish_streamId_id: 'publish_streamId3',
502
+ publish_tag: 'tag3'
545
503
  }
546
504
  ];
547
505
  config_param.initSubscribe = [
@@ -583,6 +541,7 @@ class Video extends Component {
583
541
  }
584
542
  ];
585
543
  this.test_controller.InitRoomConfig(config_param)
544
+ this.saveLog('mrtc InitRoomConfig start')
586
545
  };
587
546
  rateAll = async () => {
588
547
  let data = ''
@@ -633,82 +592,47 @@ class Video extends Component {
633
592
  height: 175
634
593
  },
635
594
  {
636
- tag: 'customer1',
595
+ tag: 'tag2',
637
596
  xPosition: 213,
638
597
  yPosition: 0,
639
598
  width: 213,
640
599
  height: 175
641
600
  },
642
601
  {
643
- tag: 'customer2',
602
+ tag: 'tag3',
644
603
  xPosition: 426,
645
604
  yPosition: 0,
646
605
  width: 213,
647
606
  height: 175
648
607
  },
649
608
  {
650
- tag: 'customer3',
609
+ tag: 'customer1',
651
610
  xPosition: 639,
652
611
  yPosition: 0,
653
612
  width: 213,
654
613
  height: 175
655
614
  },
656
615
  {
657
- tag: 'customer4',
616
+ tag: 'customer2',
658
617
  xPosition: 852,
659
618
  yPosition: 0,
660
619
  width: 213,
661
620
  height: 175
662
621
  },
663
622
  {
664
- tag: 'customer5',
623
+ tag: 'customer3',
665
624
  xPosition: 1065,
666
625
  yPosition: 0,
667
626
  width: 213,
668
627
  height: 175
669
628
  },
670
- // {
671
- // tag: 'customer6',
672
- // xPosition: 1440,
673
- // yPosition: 0,
674
- // width: 240,
675
- // height: 180
676
- // },
677
- // {
678
- // tag: 'customer7',
679
- // xPosition: 1680,
680
- // yPosition: 0,
681
- // width: 240,
682
- // height: 180
683
- // },
684
- // {
685
- // tag: 'customer8',
686
- // xPosition: 1680,
687
- // yPosition: 180,
688
- // width: 240,
689
- // height: 180
690
- // },
691
- // {
692
- // tag: 'customer9',
693
- // xPosition: 1680,
694
- // yPosition: 360,
695
- // width: 240,
696
- // height: 180
697
- // },
698
- // {
699
- // tag: 'customer10',
700
- // xPosition: 1680,
701
- // yPosition: 540,
702
- // width: 240,
703
- // height: 180
704
- // },
705
- // {
706
- // tag: 'customer11',
707
- // xPosition: 1680,
708
- // yPosition: 720,
709
- // width: 240,
710
- // height: 180
711
- // }
629
+ {
630
+ tag: 'customer4',
631
+ xPosition: 1278,
632
+ yPosition: 0,
633
+ width: 213,
634
+ height: 175
635
+ },
712
636
  ]
713
637
  Array.isArray(res) ?
714
638
  res.map((item) => {
@@ -780,7 +704,7 @@ class Video extends Component {
780
704
  this.setState({
781
705
  cardFailReason: '证件图片不清晰,请重试。返回重拍时,请检查并确保身份证件图片信息完整清晰后再提交核查。[#'+value+'#]'
782
706
  })
783
- } else if(value == -1001 || value == -1002|| value == -1003||value == -1004||value == -1005||value==-1006) {
707
+ } else if(value == -1001 || value == -1002|| value == -1003||value == -1004||value == -1005||value==-100801||value==-100802) {
784
708
  this.setState({
785
709
  cardFailReason: '系统或网络连接异常,请重试。若仍有问题,请联系Support同事。[#'+value+'#]'
786
710
  })
@@ -799,7 +723,11 @@ class Video extends Component {
799
723
  this.setState({
800
724
  faceFailReason: '用户信息核查未通过。请返回重试。返回重拍时,请检查并确保客户照片完整清晰后再提交核查。[#'+ value + '#]'
801
725
  })
802
- }else if(value == 209) {
726
+ }else if(value == 206) {
727
+ this.setState({
728
+ faceFailReason: '用户信息核查无法处理,请重试。若仍有问题,请联系Support同事。[#'+ value + '#]'
729
+ })
730
+ } else if(value == 209) {
803
731
  this.setState({
804
732
  faceFailReason: '用户信息核查未通过。请确认客户与其提供的证件信息一致后,再提交核查。[#'+ value + '#]'
805
733
  })
@@ -816,9 +744,22 @@ class Video extends Component {
816
744
  }
817
745
  contrastFaceVerify = async () => {
818
746
  try {
747
+ let userInfo = this.state.userIdCardResults[this.state.faceCustomerUid]
748
+ console.log(this.state.faceCustomerUid, userInfo)
749
+ if (!userInfo || !userInfo.idCardNumber) {
750
+ console.log('没有身份证ocr信息')
751
+ this.setState({
752
+ loadingFace: false,
753
+ faceResuly: 'fail',
754
+ isFaceImage: '',
755
+ // faceFailReason: result.message
756
+ })
757
+ this.errorCodeClick('face', 201)
758
+ return
759
+ }
819
760
  let result = await API.contrastFaceVerify({
820
- idCardNumber: this.state.idCardNumberFace,
821
- idCardName: this.state.idCardNameFace,
761
+ idCardName: userInfo.idCardName, // idCardName: this.state.idCardNameFace,
762
+ idCardNumber: userInfo.idCardNumber, // idCardNumber: this.state.idCardNumberFace,
822
763
  staffId: this.props.tellerAccount,
823
764
  activityId: this.props.businessNumber,
824
765
  appAccount: this.state.faceCustomerUid,
@@ -832,7 +773,10 @@ class Video extends Component {
832
773
  loadingFace: false,
833
774
  faceResuly: 'success',
834
775
  isFaceImage: '',
835
- faceFailReason: ''
776
+ faceFailReason: '',
777
+ idCardNameFace: userInfo.idCardName,
778
+ idCardNumberFace: userInfo.idCardNumber,
779
+ certificateValidityFace: userInfo.certificateValidity
836
780
  })
837
781
  // this.setState({
838
782
  // isModalVisibleFacial: false
@@ -846,6 +790,8 @@ class Video extends Component {
846
790
  // faceFailReason: result.message
847
791
  })
848
792
  this.errorCodeClick('face',result.code)
793
+ // this.saveLog('meeting ID&V error, code=' + result.code )
794
+ this.saveLog('face recognition api error code ' + result.code + '. [ LIVE_SIGN_ALI_FACE_RECOGNITION_ERROR ]')
849
795
  }
850
796
 
851
797
 
@@ -899,112 +845,17 @@ class Video extends Component {
899
845
  // 获取人员客户列表
900
846
  selectCustomer = (val) => {
901
847
  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
- })
848
+ for (let i =1;i<=12;i++){
849
+ let item = this.state.videoList[i-1];
850
+ if (document.getElementById('video'+ i).name && !item.isPIBIntranet && item.userSide===1) {
851
+ // console.log(this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId"+i).innerText))
852
+ list.push({
853
+ feedId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId"+i).innerText).feedId,
854
+ customId: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId"+i).innerText).uid,
855
+ name: item.videoName,
856
+ tourist: false
857
+ })
858
+ }
1008
859
  }
1009
860
  console.log(list)
1010
861
  this.setState({
@@ -1018,7 +869,7 @@ class Video extends Component {
1018
869
  isCustomerSelect: true,
1019
870
  customerSelect: list.length == 1 ? 1 : '',
1020
871
 
1021
- customerTitleName: '客户身份识别'
872
+ customerTitleName: '客户身份验证'
1022
873
  },()=>{
1023
874
  console.log(this.state.customerSelect)
1024
875
  this.setState({
@@ -1083,7 +934,7 @@ class Video extends Component {
1083
934
  if (this.isFileSuccuse()) {
1084
935
  this.state.faceCustomerType = 1
1085
936
  this.setState({
1086
- titleModal: '人脸识别'
937
+ titleModal: '身份验证'
1087
938
  })
1088
939
  this.selectCustomer('facial')
1089
940
  }
@@ -1092,7 +943,7 @@ class Video extends Component {
1092
943
  if (this.isFileSuccuse()) {
1093
944
  this.state.faceCustomerType = 2
1094
945
  this.setState({
1095
- titleModal: 'OCR识别'
946
+ titleModal: '拍摄证件照片'
1096
947
  })
1097
948
  this.selectCustomer('ocr')
1098
949
  }
@@ -1125,110 +976,28 @@ class Video extends Component {
1125
976
  pictureInPictureClick = (val) => {
1126
977
  let interval
1127
978
  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
979
  if (document.getElementById('publish_video1').name) {
1137
980
  list.push({
1138
981
  name: 'publish_video1',
1139
982
  title: this.props.meetingInfo.host ? this.props.meetingInfo.host : '客户经理1',
1140
- voice: 'voiceStatue',
983
+ mute: this.state.voiceStatue,
1141
984
  noVideo: false
1142
985
  })
1143
986
  }
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
- })
987
+ console.log(this.state.videoList)
988
+ var sortedlist = [...this.state.videoList]
989
+ sortedlist.sort((a, b)=>{
990
+ return a.order - b.order;
991
+ })
992
+ for (let i =1;i<=12;i++){
993
+ if(document.getElementById('video'+i).name){
994
+ list.push({
995
+ name: 'video' + i,
996
+ title: sortedlist[i-1].videoName,
997
+ mute: sortedlist[i-1].mute,
998
+ noVideo: sortedlist[i-1].noVideo
999
+ })
1000
+ }
1232
1001
  }
1233
1002
  console.log(list)
1234
1003
  this.state.listVideoPicture = list
@@ -1349,7 +1118,7 @@ class Video extends Component {
1349
1118
  let microphoneSize = 50
1350
1119
  var img = document.getElementById("icon_huatong");
1351
1120
  var img1 = document.getElementById("icon_huatong_close");
1352
- if (this.state[this.state.listVideoPicture[i].voice]) {
1121
+ if (this.state.listVideoPicture[i].mute) {
1353
1122
  cobj.drawImage(img1, 10, 360 * (i + 1) - 60, microphoneSize, microphoneSize);
1354
1123
  } else {
1355
1124
  cobj.drawImage(img, 10, 360 * (i + 1) - 60, microphoneSize, microphoneSize);
@@ -1514,167 +1283,38 @@ class Video extends Component {
1514
1283
  // this.endSession('customerHangUp')
1515
1284
  // }
1516
1285
  // }
1517
- else if (Mival.typeId == 3002) {
1286
+ else if (Mival.typeId == 3002) { // app进入后台
1518
1287
  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
- })
1288
+ for(let i=1;i<=12;i++){
1289
+ if(Mival.data.userId == (document.getElementById("feedId"+i).innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId"+i).innerText).uid : '')) {
1290
+ this.state.videoList[i-1].noVideo = true
1291
+ }
1589
1292
  }
1590
- if (this.state.isPictureInPicture) {
1293
+ this.setState({
1294
+ videoList: this.state.videoList
1295
+ }, ()=>{
1591
1296
  this.pictureInPicture('Refresh')
1592
- }
1593
-
1297
+ })
1594
1298
  }
1595
1299
  }
1596
- else if (Mival.typeId == 3003) {
1300
+ else if (Mival.typeId == 3003) { // app进入前台
1597
1301
  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
- })
1302
+ for(let i=1;i<=12;i++){
1303
+ if(Mival.data.userId == (document.getElementById("feedId"+i).innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId"+i).innerText).uid : '')) {
1304
+ this.state.videoList[i-1].noVideo = false
1305
+ }
1668
1306
  }
1669
- if (this.state.isPictureInPicture) {
1307
+ this.setState({
1308
+ videoList: this.state.videoList
1309
+ }, ()=>{
1670
1310
  this.pictureInPicture('Refresh')
1671
- }
1311
+ })
1672
1312
  }
1673
1313
  }
1674
1314
  else if (Mival.typeId == 1220) {
1675
1315
  // 一炒多的图片 1214
1676
1316
  if (Mival.sessionId == this.state.sessionId) {
1677
- this.saveLog('imgCallback success' + Mival.data.type)
1317
+ this.saveLog('imgCallback success, typeId=1220, type=' + Mival.data.type)
1678
1318
  this.tabTitlesClick('customerScreen', 'delect')
1679
1319
  this.props.imgCallback({
1680
1320
  type: Mival.data.type + '',
@@ -1685,11 +1325,12 @@ class Video extends Component {
1685
1325
  }
1686
1326
  } else if (Mival.typeId == 1321) {
1687
1327
  this.getBase64Image(Mival.fileName)
1328
+ this.saveLog('signCallback success, typeId=1321, fileName=' + Mival.fileName)
1688
1329
  } else if (Mival.typeId == 1216) {
1689
1330
  // 签字回调 1213
1690
1331
  if (Mival.sessionId == this.state.sessionId) {
1691
1332
  this.tabTitlesClick('customerScreen', 'delect')
1692
- this.saveLog('signatureCallback success')
1333
+ this.saveLog('signatureCallback success, typeId=1216,')
1693
1334
  this.props.signatureCallback({
1694
1335
  errorType: 0
1695
1336
  })
@@ -1699,6 +1340,7 @@ class Video extends Component {
1699
1340
  // 1-开启,2-关闭
1700
1341
  if (Mival.type == 1) {
1701
1342
  this.switchExternal()
1343
+ this.saveLog('whiteboard start, typeId=1218,')
1702
1344
  } else if (Mival.type == 2) {
1703
1345
  if (streamShare) {
1704
1346
  streamShare.getTracks().forEach(track => track.stop());
@@ -1717,174 +1359,35 @@ class Video extends Component {
1717
1359
  isWhiteboard: false
1718
1360
  })
1719
1361
  }
1362
+ this.saveLog('whiteboard close, typeId=1218,')
1720
1363
  }
1721
1364
 
1722
1365
  }
1723
1366
 
1724
1367
  } 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
-
1368
+ if(Mival.data.sessionId == this.state.sessionId) {
1369
+ muteJson.set(Mival.data.userId, JSON.stringify(Mival))
1370
+ for(let i=1;i<=12;i++){
1371
+ if(Mival.data.userId == (document.getElementById("feedId"+i).innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId"+i).innerText).uid : '')) {
1372
+ muteJson.delete(Mival.data.userId)
1373
+ if(Mival.muteStatus == 0) {
1374
+ this.state.videoList[i-1].mute = false
1375
+ this.setState({
1376
+ videoList: this.state.videoList
1377
+ })
1378
+ } else if(Mival.muteStatus == 1) {
1379
+ this.state.videoList[i-1].mute = true
1380
+ this.setState({
1381
+ videoList: this.state.videoList
1382
+ })
1383
+ }
1384
+
1385
+ }
1883
1386
  }
1884
1387
  }
1885
1388
  } else if (Mival.typeId == 121305) {
1886
1389
  if (Mival.sessionId == this.state.sessionId) {
1887
- this.saveLog('signatureCallback fail')
1390
+ this.saveLog('signatureCallback fail, typeId=121305, ')
1888
1391
  this.props.signatureCallback({
1889
1392
  errorType: -1
1890
1393
  })
@@ -1892,7 +1395,7 @@ class Video extends Component {
1892
1395
  } else if (Mival.typeId == 121405) {
1893
1396
  if (Mival.sessionId == this.state.sessionId) {
1894
1397
  console.log('imgCallback')
1895
- this.saveLog('imgCallback fail')
1398
+ this.saveLog('imgCallback fail, typeId=121405, ')
1896
1399
  this.props.imgCallback({
1897
1400
  type: '',
1898
1401
  file: '',
@@ -1902,72 +1405,60 @@ class Video extends Component {
1902
1405
  } else if (Mival.typeId == 4001) {
1903
1406
  // 手机端停止投屏
1904
1407
  this.tabTitlesClick('customerScreen', 'delect')
1408
+ this.saveLog('app stop sharing screen, typeId=4001, ')
1905
1409
 
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 : '')) {
1410
+ } else if (Mival.typeId == 4004) {
1411
+ // 线下demo静音处理
1412
+ if (Mival.data.sessionId == this.state.sessionId && this.isFileSuccuse()) {
1413
+ if (!this.state.voiceStatue) {
1414
+ // 静音本地
1941
1415
  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 : '')) {
1961
- this.setState({
1962
- videoElevenName: Mival.name
1416
+ voiceStatue: true,
1417
+ voiceImg: voiceImgCloe,
1418
+ voiceName: '解除静音'
1419
+ });
1420
+ let sid = document.getElementById('publish_video1').name || document.getElementById('publish_streamId1').name;
1421
+ this.test_controller.SetLocalAudioEnable(0, parseInt(sid, 10));
1422
+ callNimIM('sendCustomCmdMsg', {
1423
+ customId: this.state.imRoomId,
1424
+ content: JSON.stringify({
1425
+ 'typeId': 1013,
1426
+ 'muteStatus': 1,
1427
+ 'data': {
1428
+ 'sessionId': this.state.sessionId,
1429
+ 'userId': this.props.tellerAccount
1430
+ }
1431
+ })
1432
+ }, function (code, message, data) {
1433
+ // console.log(data)
1963
1434
  })
1964
1435
  }
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
- })
1436
+ document.getElementById('audio1').muted = true
1437
+ console.log('音频流静音')
1438
+ console.log(document.getElementById('audio1').muted)
1439
+ setTimeout(() => {
1440
+ callNimIM('sendCustomCmdMsg', {
1441
+ customId: this.state.imRoomId,
1442
+ content: JSON.stringify({
1443
+ 'typeId': 1223,
1444
+ 'state': 1, // app解除静音
1445
+ 'sessionId': this.state.sessionId,
1446
+ 'userId': Mival.data.userId //this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById('feedId1').innerText).uid
1447
+ })
1448
+ });
1449
+ }, 1000);
1450
+ }
1451
+ } else if (Mival.typeId == 1401) {
1452
+ // 用户修改名字
1453
+ if (Mival.sessionId == this.state.sessionId) {
1454
+ for(let i=1;i<=12;i++){
1455
+ if(Mival.userId == (document.getElementById("feedId"+i).innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId"+i).innerText).uid : '')) {
1456
+ this.state.videoList[i-1].videoName = Mival.name
1457
+ }
1969
1458
  }
1970
-
1459
+ this.setState({
1460
+ videoList: this.state.videoList
1461
+ })
1971
1462
  }
1972
1463
  }
1973
1464
  };
@@ -2124,7 +1615,7 @@ class Video extends Component {
2124
1615
  // 获取设备失败
2125
1616
  this.test_controller.OnGetDevicesFailed = (code, msg) => {
2126
1617
  console.log('获取设备失败', code, msg)
2127
- this.saveLog('Failed to get device')
1618
+ this.saveLog('Failed to get device, code='+code)
2128
1619
  this.state.sessionType = false
2129
1620
  this.messageClick('获取设备失败,请检查摄像头设备是否可用或是否禁用摄像头', 'error')
2130
1621
  this.roomCallBack(2, '获取设备失败', 1)
@@ -2165,6 +1656,7 @@ class Video extends Component {
2165
1656
  } else {
2166
1657
  this.test_controller.CreateRoom()
2167
1658
  }
1659
+ this.saveLog('InitRoomConfig successfully')
2168
1660
 
2169
1661
  };
2170
1662
  // 创建房间成功
@@ -2174,6 +1666,7 @@ class Video extends Component {
2174
1666
  this.state.channelId = room_id,
2175
1667
  this.state.rtoken = rtoken
2176
1668
  this.createRoom()
1669
+ this.saveLog('RM mrtc create room successfully, room_id=' + room_id)
2177
1670
  };
2178
1671
  // 创建房间失败
2179
1672
  this.test_controller.OnCreateRoomFailed = (err_code, err_msg) => {
@@ -2185,10 +1678,12 @@ class Video extends Component {
2185
1678
  // 初始化⾳视频成功
2186
1679
  this.test_controller.OnMediaCallSucc = (sid) => {
2187
1680
  console.log('初始化⾳视频成功', sid)
1681
+ this.saveLog('OnMediaCallSucc:' + sid)
2188
1682
  };
2189
1683
  // 初始化音视频失败
2190
1684
  this.test_controller.OnMediaCallFail = (err_code, err_msg) => {
2191
1685
  console.log('初始化音视频失败', err_code, err_msg)
1686
+ this.saveLog('OnMediaCallFail, code=' + err_code)
2192
1687
  };
2193
1688
  // 音视频关闭通知
2194
1689
  this.test_controller.OnMediaClose = (code, sid) => {
@@ -2205,24 +1700,29 @@ class Video extends Component {
2205
1700
  // 加入房间成功
2206
1701
  this.test_controller.OnJoinRoomSucc = () => {
2207
1702
  console.log('加入房间成功')
2208
- let publish_config = {}
2209
- publish_config.media_type = 1
2210
- publish_config.publish_device = 1
2211
- publish_config.need_volume_analyser = true
2212
- publish_config.videoSource = this.state.cameraValue
2213
- publish_config.audioSource = this.state.microphoneValue
2214
- // publish_config.video_profile_type = 3
2215
- publish_config.video_profile_type = 100
2216
- publish_config.video_profile_diy = { width: 640, height: 360, frameRate: 15, bitrate: 400 }
2217
- publish_config.publish_video_id = 'publish_video1'
2218
- publish_config.publish_streamId_id = 'publish_streamId1'
2219
- publish_config.publish_tag = 'tag1'
2220
- this.test_controller.Publish(publish_config)
1703
+
1704
+ this.state.cameraList.forEach((el, i) => {
1705
+ let publish_config = {}
1706
+ publish_config.media_type = 1
1707
+ publish_config.publish_device = 1
1708
+ publish_config.videoSource = el.actionid
1709
+ publish_config.audioSource = this.state.microphoneValue
1710
+ publish_config.need_volume_analyser = true
1711
+ // publish_config.video_profile_type = 3
1712
+ publish_config.video_profile_type = 100
1713
+ publish_config.video_profile_diy = { width: 640, height: 360, frameRate: 15, bitrate: 400 }
1714
+ publish_config.publish_video_id = 'publish_video' + (i+1)
1715
+ publish_config.publish_streamId_id = 'publish_streamId' + (i+1)
1716
+ publish_config.publish_tag = 'tag' + (i+1)
1717
+ this.test_controller.Publish(publish_config)
1718
+ })
1719
+
2221
1720
  this.roomCallBack(1, '', 0)
1721
+ this.saveLog('mrtc join room success')
2222
1722
  };
2223
1723
  // 加入房间失败
2224
1724
  this.test_controller.OnJoinRoomFailed = (err_code, err_msg) => {
2225
- this.saveLog('Join room failed,' + err_code)
1725
+ this.saveLog('mrtc join room failed,' + err_code)
2226
1726
  console.log('加入房间失败', err_code, err_msg)
2227
1727
  // this.setState({
2228
1728
  // sessionType: false,
@@ -2254,12 +1754,14 @@ class Video extends Component {
2254
1754
  documentError: '',
2255
1755
  isModalVisibleCustomer: false,
2256
1756
  })
1757
+ this.saveLog('mrtc OnSendTextMsgSucc:' + msgId)
2257
1758
  }
2258
1759
  this.test_controller.OnSendTextMsgFailed = (msgId, code, msg) => {
2259
1760
  console.log('发送失败', msgId, code, msg)
2260
1761
  this.setState({
2261
1762
  documentError: '推送授权白板失败,请重试'
2262
1763
  })
1764
+ this.saveLog('mrtc OnSendTextMsgFail:' + msgId +', code=' + code + ',msg=' + msg)
2263
1765
  }
2264
1766
  this.test_controller.OnReceiveTextMsg = (uid, msg) => {
2265
1767
  console.log('收到手机端消息', uid, msg, JSON.parse(msg).typeId, JSON.parse(msg).data.sessionId, this.state.sessionId)
@@ -2269,6 +1771,49 @@ class Video extends Component {
2269
1771
  this.customerFaceClick(this.state.customerList[this.state.customerSelect - 1])
2270
1772
  }
2271
1773
  }
1774
+ // 线下demo静音处理
1775
+ if (JSON.parse(msg).typeId == 4004 && this.state.sessionId == JSON.parse(msg).data.sessionId) {
1776
+ if (this.isFileSuccuse()) {
1777
+ if (!this.state.voiceStatue) {
1778
+ // 静音本地
1779
+ this.setState({
1780
+ voiceStatue: true,
1781
+ voiceImg: voiceImgCloe,
1782
+ voiceName: '解除静音'
1783
+ });
1784
+ let sid = document.getElementById('publish_video1').name || document.getElementById('publish_streamId1').name;
1785
+ this.test_controller.SetLocalAudioEnable(0, parseInt(sid, 10));
1786
+ callNimIM('sendCustomCmdMsg', {
1787
+ customId: this.state.imRoomId,
1788
+ content: JSON.stringify({
1789
+ 'typeId': 1013,
1790
+ 'muteStatus': 1,
1791
+ 'data': {
1792
+ 'sessionId': this.state.sessionId,
1793
+ 'userId': this.props.tellerAccount
1794
+ }
1795
+ })
1796
+ }, function (code, message, data) {
1797
+ // console.log(data)
1798
+ })
1799
+ }
1800
+ document.getElementById('audio1').muted = true
1801
+ console.log('音频流静音')
1802
+ console.log(document.getElementById('audio1').muted)
1803
+ setTimeout(() => {
1804
+ callNimIM('sendCustomCmdMsg', {
1805
+ customId: this.state.imRoomId,
1806
+ content: JSON.stringify({
1807
+ 'typeId': 1223,
1808
+ 'state': 1, // app解除静音
1809
+ 'sessionId': this.state.sessionId,
1810
+ 'userId': uid //this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById('feedId1').innerText).uid
1811
+ })
1812
+ });
1813
+ }, 1000);
1814
+ }
1815
+ }
1816
+ this.saveLog('mrtc OnReceiveTextMsg info:' + msg)
2272
1817
  }
2273
1818
  this.test_controller.StreamFilterHandler = async (publish_tag, stream, stream_type, publish_device, media_type) => {
2274
1819
  console.log(`stream processed by client, publish_device=${publish_device}, media_type=${media_type}, publish_tag=${publish_tag},stream_type=${stream_type}`);
@@ -2408,210 +1953,68 @@ class Video extends Component {
2408
1953
  'data': (new Date()).valueOf()
2409
1954
  }
2410
1955
 
2411
- })
2412
- });
2413
- }
2414
- },
2415
- 1000
2416
- );
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 : ''
2575
-
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
- }
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 : ''
1956
+ })
1957
+ });
1958
+ }
1959
+ },
1960
+ 1000
1961
+ );
1962
+ } else {
1963
+ var box = document.getElementById("whiteboardDIV");
1964
+ var box1 = document.getElementById("operate")
1965
+ var height = box1 ? box1.offsetHeight : 40
1966
+ var width = this.state.whiteboardHeight * document.getElementById("video20").videoWidth / document.getElementById("video20").videoHeight
1967
+ if (box) { //此处在加一层判断,更加严密,如果box存在的情况下获取
1968
+ this.setState({
1969
+ widthVideo: width,
1970
+ whiteboardTop: box.getBoundingClientRect().top - height,
1971
+ whiteboardLeft: box.getBoundingClientRect().left,
1972
+ leftVideo: (box.offsetWidth - width) / 2 + box.getBoundingClientRect().left
1973
+ })
1974
+ console.log('whiteboardVideo20', this.state.whiteboardTop, this.state.whiteboardLeft, this.state.widthVideo, this.state.leftVideo)
2589
1975
 
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
1976
  }
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)
1977
+ }
1978
+ };
1979
+ // 发布媒体流失败
1980
+ this.test_controller.OnPublishFailed = (sid, err_code, err_msg) => {
1981
+ this.saveLog('mrtc OnPublishFailed 发布失败, code=' + err_code)
1982
+ console.log('Publishing media stream failed,', sid, err_code, err_msg)
1983
+ if (sid == document.getElementById('publish_video1').name) {
1984
+ this.state.sessionType = false
1985
+ this.roomCallBack(2, '发布失败', 4)
1986
+ } else {
1987
+ this.messageClick('投屏失败请重新投屏', 'error')
1988
+ }
1989
+
1990
+ };
1991
+ // 订阅媒体流成功
1992
+ this.test_controller.OnSubscribeSucc = (feed, sid) => {
1993
+ console.log('订阅媒体流成功', feed, sid);
1994
+
1995
+ this.appGetUsername(sid)
1996
+ console.log(muteJson, muteJson.size)
1997
+ if(muteJson.size > 0) {
1998
+ for(let i=1;i<=12;i++){
1999
+ const userId = document.getElementById("feedId"+i).innerText ? this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId"+i).innerText).uid : ''
2000
+ console.log(muteJson.get(userId))
2001
+ if(muteJson.get(userId)) {
2002
+
2003
+ if(JSON.parse(muteJson.get(userId)).muteStatus == 0) {
2004
+ this.state.videoList[i-1].mute = false
2005
+ this.setState({
2006
+ videoList: this.state.videoList
2007
+ })
2008
+ } else if(JSON.parse(muteJson.get(userId)).muteStatus == 1) {
2009
+ this.state.videoList[i-1].mute = true
2010
+ this.setState({
2011
+ videoList: this.state.videoList
2012
+ })
2013
+ }
2014
+ muteJson.delete(userId)
2015
+ }
2613
2016
  }
2614
- console.log(muteJson, muteJson.length)
2017
+ console.log(muteJson,muteJson.length)
2615
2018
  }
2616
2019
  };
2617
2020
  // 订阅媒体流失败
@@ -2672,120 +2075,23 @@ class Video extends Component {
2672
2075
  }, 'add'
2673
2076
  )
2674
2077
  } 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
- }
2078
+ for (let i=1;i<=12;i++){
2079
+ if(!document.getElementById('video'+i).name) {
2080
+ config_param = {
2081
+ subscribe_video_id: 'video'+i,
2082
+ subscribe_audio_id: 'audio'+i,
2083
+ subscribe_streamId_id: 'subscribe_streamId'+i,
2084
+ feedId_id: 'feedId'+i,
2085
+ feedId: itemOne.feedId
2086
+ }
2087
+ break;
2088
+ }
2783
2089
  }
2784
2090
  }
2785
2091
  if (config_param !== undefined) {
2786
2092
  config_param.need_volume_analyser = true
2787
2093
  console.log(config_param)
2788
-
2094
+ console.log('发起订阅')
2789
2095
  this.test_controller.Subscribe(config_param)
2790
2096
 
2791
2097
  }
@@ -2797,6 +2103,7 @@ class Video extends Component {
2797
2103
  // 推送“新加⼊房间者”给与会者
2798
2104
  this.test_controller.OnNewJoinerIn = (participant) => {
2799
2105
  console.log('新加⼊房间者', participant);
2106
+ this.saveLog('mrtc someone joined room, userId=' + participant)
2800
2107
  this.state.isCustomer = true
2801
2108
  };
2802
2109
  // 推送“有新发布”给与会者
@@ -2887,113 +2194,17 @@ class Video extends Component {
2887
2194
 
2888
2195
  }
2889
2196
  } 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
- }
2197
+ for (let i=1;i<=12;i++){
2198
+ if(!document.getElementById('video'+i).name) {
2199
+ config_param = {
2200
+ subscribe_video_id: 'video'+i,
2201
+ subscribe_audio_id: 'audio'+i,
2202
+ subscribe_streamId_id: 'subscribe_streamId'+i,
2203
+ feedId_id: 'feedId'+i,
2204
+ feedId: feed.feedId
2205
+ }
2206
+ break;
2207
+ }
2997
2208
  }
2998
2209
  if (config_param !== undefined) {
2999
2210
  config_param.need_volume_analyser = true
@@ -3051,126 +2262,26 @@ class Video extends Component {
3051
2262
  }
3052
2263
  }
3053
2264
  })
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
- })
2265
+ for(let i=1;i<=12;i++){
2266
+ if(!document.getElementById("video"+i).name) {
2267
+ this.state.videoList[i-1]= {
2268
+ ...this.state.videoList[i-1],
2269
+ videoName: '',
2270
+ mute: false,
2271
+ noVideo: false,
2272
+ isPIBIntranet: false,
2273
+ userSide: '',
2274
+ userType: '',
2275
+ userId: '',
2276
+ hasOcr: 0,
2277
+ }
2278
+ this.setState({
2279
+ videoList: this.state.videoList
2280
+ })
2281
+ }
3164
2282
  }
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
- })
2283
+ if (!document.getElementById("video1").name) {
2284
+ document.getElementById('audio1').muted = false
3174
2285
  }
3175
2286
  this.state.analyserData.delete(sid)
3176
2287
  if (this.state.isPictureInPicture) {
@@ -3225,6 +2336,7 @@ class Video extends Component {
3225
2336
  let data = res ? res.username ? res.username : '客户' : '客户'
3226
2337
  console.log(data)
3227
2338
  this.messageClick((data + '已退出会议'), 'error')
2339
+ this.saveLog(data + ' leave room')
3228
2340
  if (res.userType == 1) {
3229
2341
  // 2--坐席  1--客户
3230
2342
  this.props.userExit({
@@ -3255,6 +2367,7 @@ class Video extends Component {
3255
2367
  console.log('弱网回调', bpsSend, bpsRecv, sid)
3256
2368
  if (sid == document.getElementById('publish_video1').name) {
3257
2369
  this.messageClick('当前网络环境较差', 'error')
2370
+ this.saveLog('mrtc OnNetworkWeak')
3258
2371
  }
3259
2372
  };
3260
2373
  // 开始服务端录制成功
@@ -3262,6 +2375,7 @@ class Video extends Component {
3262
2375
  console.log('开始服务端录制成功', record_id);
3263
2376
  this.state.recordId = record_id
3264
2377
  this.videoRecordCallback('1', true)
2378
+ this.saveLog('mrtc OnStartRemoteRecordSucc')
3265
2379
  };
3266
2380
  // 开始服务端录制失败
3267
2381
  this.test_controller.OnStartRemoteRecordFailed = (
@@ -3271,11 +2385,13 @@ class Video extends Component {
3271
2385
  ) => {
3272
2386
  this.videoRecordCallback('1', false)
3273
2387
  console.log('开始服务端录制失败', record_id, err_code, err_msg)
2388
+ this.saveLog('mrtc OnStartRemoteRecordFailed, code='+err_code)
3274
2389
  };
3275
2390
  // 结束服务端录制成功
3276
2391
  this.test_controller.OnStopRemoteRecordSucc = (recordId) => {
3277
2392
  console.log('结束服务端录制成功', recordId);
3278
2393
  this.videoRecordCallback('2', true)
2394
+ this.saveLog('mrtc OnStopRemoteRecordSucc, recordId='+recordId)
3279
2395
  // this.endSessionValue()
3280
2396
  // 获取服务端录制结果
3281
2397
  };
@@ -3287,6 +2403,7 @@ class Video extends Component {
3287
2403
  ) => {
3288
2404
  this.videoRecordCallback('2', false)
3289
2405
  console.log('结束服务端录制失败', recordId, err_code, err_msg)
2406
+ this.saveLog('mrtc OnStopRemoteRecordFailed, err_code='+err_code)
3290
2407
  };
3291
2408
  // 开启浏览器录制成功
3292
2409
  this.test_controller.OnClientStartRecordSuccess = (
@@ -3432,6 +2549,7 @@ class Video extends Component {
3432
2549
  msg
3433
2550
  ) => {
3434
2551
  console.log('切流失败通知', sid, code, msg)
2552
+ this.saveLog('mrtc OnChangeMediaStreamFailed, code=' + code)
3435
2553
  if (this.state.loading) {
3436
2554
  this.setState({
3437
2555
  loading: false
@@ -3674,6 +2792,13 @@ class Video extends Component {
3674
2792
  clearStreamRemain()
3675
2793
  this.test_controller.LeaveRoom()
3676
2794
  this.test_controller.Disconnect()
2795
+ try {
2796
+ beautySetMode('none');
2797
+ beautyStop();
2798
+ console.log('beautyStop!!')
2799
+ } catch (err){
2800
+ console.error(err)
2801
+ }
3677
2802
  }
3678
2803
  if (this.state.imStatus) {
3679
2804
  console.log('disconnect断开连接')
@@ -3871,7 +2996,21 @@ class Video extends Component {
3871
2996
  }
3872
2997
  }
3873
2998
  componentWillMount() {
3874
- console.log('hsbc_teller_sdk', '1.9.81')
2999
+ console.log('hsbc_teller_sdk', '2.0.1')
3000
+ let arr = []
3001
+ for(let i=1;i<=12;i++){
3002
+ arr.push({
3003
+ videoName: '',
3004
+ mute: false,
3005
+ noVideo: false,
3006
+ isPIBIntranet: false,
3007
+ idIndex: i,
3008
+ hasOcr: 0,
3009
+ })
3010
+ }
3011
+ this.setState({
3012
+ videoList: arr
3013
+ })
3875
3014
  if (this.props.sessionId) {
3876
3015
  this.getRoomStatus({
3877
3016
  sessionId: this.props.sessionId
@@ -4218,7 +3357,8 @@ class Video extends Component {
4218
3357
  isModalVisibleSFP: false,
4219
3358
  disabledIdCard: false,
4220
3359
  isStaffState: 'success',
4221
- loadingStaff: false
3360
+ loadingStaff: false,
3361
+ authorizeStaffId: this.state.StaffidSFP,
4222
3362
  })
4223
3363
  }).catch((err) => {
4224
3364
  console.log(err)
@@ -4241,60 +3381,112 @@ class Video extends Component {
4241
3381
  PasswordSFP: event.target.value
4242
3382
  })
4243
3383
  }
3384
+ handleFinishOcr = async (type) => {
3385
+ // 非身份证直接入库
3386
+ if (type == 'noFace') {
3387
+ await this.confirmCallback()
3388
+ // this.setState({
3389
+ // idCardNameFace: this.state.idCardName,
3390
+ // idCardNumberFace: this.state.idCardNumber,
3391
+ // certificateValidityFace: this.state.certificateValidity
3392
+ // },()=>{
3393
+ this.setState({
3394
+ isModalVisibleFacial: false,
3395
+ cardResuly: '',
3396
+ idCardNumber: '',
3397
+ idCardName: '',
3398
+ certificateValidity: '',
3399
+ resultIdCardName: '',
3400
+ resultIdCardNumber: '',
3401
+ resultCertificateDate: '',
3402
+ authorizeStaffId: ''
3403
+ })
3404
+ // })
3405
+ } else {
3406
+ console.log('身份证ocr')
3407
+ // 身份证,进行人脸识别后再入库
3408
+ this.state.userIdCardResults[this.state.faceCustomerUid] = {
3409
+ idCardName: this.state.idCardName,
3410
+ idCardNumber: this.state.idCardNumber,
3411
+ customerName: this.state.customerName,
3412
+ certificateValidity: this.state.certificateValidity,
3413
+ resultIdCardName: this.state.resultIdCardName,
3414
+ resultIdCardNumber: this.state.resultIdCardNumber,
3415
+ resultCertificateDate: this.state.resultCertificateDate,
3416
+ authorizeStaffId: this.state.authorizeStaffId,
3417
+ }
3418
+ console.log(this.state.userIdCardResults)
3419
+ this.setState({
3420
+ idCardNameFace: this.state.idCardName,
3421
+ idCardNumberFace: this.state.idCardNumber,
3422
+ certificateValidityFace: this.state.certificateValidity,
3423
+ userIdCardResults: this.state.userIdCardResults
3424
+ },()=>{
3425
+ this.state.faceCustomerType = 1
3426
+ this.setState({
3427
+ cardResuly: '',
3428
+ certificateValidity: '',
3429
+ idCardNumber: '',
3430
+ idCardName: '',
3431
+ resultIdCardName: '',
3432
+ resultIdCardNumber: '',
3433
+ resultCertificateDate: '',
3434
+ authorizeStaffId: '',
3435
+ titleModal: '身份验证',
3436
+ // clickedFacial: true,
3437
+ facialImg: faceImage,
3438
+ isFaceImage: false
3439
+ })
3440
+ })
3441
+ setTimeout(() => {
3442
+ this.publishVideoTwo()
3443
+ }, 0);
3444
+ }
3445
+ }
3446
+ // ocr结果入库
4244
3447
  confirmCallback = async (data) => {
4245
3448
  try {
4246
- let result = await API.confirmCallback({
4247
- idCardName: this.state.idCardName,
3449
+ // 原始证件参数
3450
+ let data = {
3451
+ idCardName: this.state.resultIdCardName,
4248
3452
  staffId: this.props.tellerAccount,
4249
3453
  activityId: this.props.businessNumber,
4250
3454
  appAccount: this.state.faceCustomerUid,
4251
- idCardNumber: this.state.idCardNumber,
3455
+ idCardNumber: this.state.resultIdCardNumber,
4252
3456
  sessionId: this.state.sessionId,
4253
3457
  certificateType: this.state.certificateType,
4254
3458
  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
- });
3459
+ startDate: this.state.documentType == 'PASSPORT_CARD' ? '' : this.state.resultCertificateDate ? this.state.resultCertificateDate.split('-')[0] : '',
3460
+ endDate: this.state.documentType == 'PASSPORT_CARD' ? this.state.resultCertificateDate ? this.state.resultCertificateDate.split('-')[0]: '' : this.state.resultCertificateDate ? this.state.resultCertificateDate.split('-')[1] : '',
3461
+ }
3462
+ // 添加修改后的证件参数
3463
+ if (this.state.authorizeStaffId) {
3464
+ data.authorizeStaffId = this.state.authorizeStaffId
3465
+ }
3466
+ if (this.state.idCardName != this.state.resultIdCardName) {
3467
+ data.reviseIdCardName = this.state.idCardName
3468
+ }
3469
+ if (this.state.idCardNumber != this.state.resultIdCardNumber) {
3470
+ data.reviseIdCardNumber = this.state.idCardNumber
3471
+ }
3472
+ let reviseCertificateStartDate = this.state.documentType == 'PASSPORT_CARD' ? '' : this.state.certificateValidity ? this.state.certificateValidity.split('-')[0] : '';
3473
+ let reviseCertificateEndDate = this.state.documentType == 'PASSPORT_CARD' ? this.state.certificateValidity ? this.state.certificateValidity.split('-')[0]: '' : this.state.certificateValidity ? this.state.certificateValidity.split('-')[1] : '';
3474
+ if (reviseCertificateStartDate != data.startDate) {
3475
+ data.reviseCertificateStartDate = reviseCertificateStartDate
3476
+ }
3477
+ if (reviseCertificateEndDate != data.endDate) {
3478
+ data.reviseCertificateEndDate = reviseCertificateEndDate
3479
+ }
3480
+ let result = await API.confirmCallback(data);
4258
3481
  console.log('confirmCallback', result)
4259
3482
  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
-
3483
+ // console.log(data)
3484
+ let item = this.state.videoList.find(el => el.userId == this.state.faceCustomerUid )
3485
+ item.hasOcr = 1; // 非身份证ocr
3486
+ // this.setState({
3487
+ // videoList: this.state.videoList
3488
+ // })
3489
+ this.videoListSort();
4298
3490
  } else {
4299
3491
  console.log('1')
4300
3492
  this.messageClick('保持信息失败', 'error')
@@ -4335,6 +3527,8 @@ class Video extends Component {
4335
3527
  this.setState({
4336
3528
  idCardNumber: result.data.idCardNumber,
4337
3529
  idCardName: result.data.idCardName,
3530
+ resultIdCardName: result.data.idCardName,
3531
+ resultIdCardNumber: result.data.idCardNumber,
4338
3532
  loadingFace: false,
4339
3533
  cardFailReason: '',
4340
3534
  cardResuly: 'success',
@@ -4343,6 +3537,8 @@ class Video extends Component {
4343
3537
  this.setState({
4344
3538
  idCardNumber: result.data.idCardNumber,
4345
3539
  idCardName: result.data.idCardName,
3540
+ resultIdCardName: result.data.idCardName,
3541
+ resultIdCardNumber: result.data.idCardNumber,
4346
3542
  certificateValidityType: false,
4347
3543
  cardFailReason: '证件已过期[#'+result.code+'#]',
4348
3544
  loadingFace: false,
@@ -4354,7 +3550,9 @@ class Video extends Component {
4354
3550
  this.setState({
4355
3551
  // isModalVisibleFacial: false
4356
3552
  idCardNumber: result.data.idCardNumber,
4357
- idCardName: result.data.idCardName
3553
+ idCardName: result.data.idCardName,
3554
+ resultIdCardName: result.data.idCardName,
3555
+ resultIdCardNumber: result.data.idCardNumber,
4358
3556
  })
4359
3557
  this.ocrCallback(2)
4360
3558
  }
@@ -4372,6 +3570,7 @@ class Video extends Component {
4372
3570
  if(this.state.idCardName && this.dateNewTime(endDate)) {
4373
3571
  this.setState({
4374
3572
  certificateValidity: startDate + '-' + endDate,
3573
+ resultCertificateDate: startDate + '-' + endDate,
4375
3574
  loadingFace: false,
4376
3575
  cardFailReason: '',
4377
3576
  cardResuly: 'success',
@@ -4380,6 +3579,7 @@ class Video extends Component {
4380
3579
  } else if(this.state.idCardName && !this.dateNewTime(endDate)) {
4381
3580
  this.setState({
4382
3581
  certificateValidity: startDate + '-' + endDate,
3582
+ resultCertificateDate: startDate + '-' + endDate,
4383
3583
  loadingFace: false,
4384
3584
  certificateValidityType: false,
4385
3585
  cardFailReason: '证件已过期[#'+result.code+'#]',
@@ -4408,36 +3608,50 @@ class Video extends Component {
4408
3608
  } else {
4409
3609
  this.setState({
4410
3610
  loadingFace: false,
4411
- cardFailReason: '证件截取顺序有误,请返回重拍[41000]',
3611
+ cardFailReason: '证件截取顺序有误,请返回重拍[#-41000#]',
4412
3612
  cardResuly: 'fail',
4413
3613
  })
4414
3614
  }
4415
3615
  }
4416
3616
  if(this.state.documentType == 'HK_MO_RESIDENCE_CARD' || this.state.documentType == 'TW_RESIDENCE_CARD') {
4417
- if (result.data.side == 'front') {
3617
+ if (result.data.side == 'front' && val == 1) {
4418
3618
  this.setState({
4419
3619
  // isModalVisibleFacial: false
4420
3620
  idCardNumber: result.data.resident.idNum,
4421
- idCardName: result.data.resident.name
3621
+ idCardName: result.data.resident.name,
3622
+ resultIdCardName: result.data.resident.name,
3623
+ resultIdCardNumber: result.data.resident.idNum,
4422
3624
  })
4423
3625
  this.ocrCallback(2)
4424
- } else if (result.data.side == 'back') {
3626
+ } else if (result.data.side == 'back' && val != 1) {
4425
3627
  console.log(result.data.resident.startDate, result.data.resident.endDate)
4426
3628
  this.setState({
4427
3629
  certificateValidity: result.data.resident.startDate + '-' + result.data.resident.endDate,
3630
+ resultCertificateDate: result.data.resident.startDate + '-' + result.data.resident.endDate,
4428
3631
  loadingFace: false,
4429
3632
  cardFailReason: result.code == 40002 ? '证件已过期[#'+result.code+'#]' : '',
3633
+ certificateValidityType: result.code == 40002 ? false : true,
4430
3634
  cardResuly: 'success',
4431
3635
  })
3636
+ } else {
3637
+ this.setState({
3638
+ loadingFace: false,
3639
+ cardFailReason: '证件截取顺序有误,请返回重拍[#-41000#]',
3640
+ cardResuly: 'fail',
3641
+ })
4432
3642
  }
4433
3643
  }
4434
3644
  if(this.state.documentType == 'PASSPORT_CARD') {
4435
3645
  this.setState({
4436
3646
  idCardNumber: result.data.passport.passportCode,
4437
3647
  idCardName: result.data.passport.nameEN,
3648
+ resultIdCardName: result.data.passport.nameEN,
3649
+ resultIdCardNumber: result.data.passport.passportCode,
4438
3650
  certificateValidity: result.data.passport.expiryDate,
3651
+ resultCertificateDate: result.data.passport.expiryDate,
4439
3652
  loadingFace: false,
4440
3653
  cardFailReason: result.code == 30002 ? '证件已过期[#'+result.code+'#]' : '',
3654
+ certificateValidityType: result.code == 30002 ? false : true,
4441
3655
  cardResuly: 'success',
4442
3656
  })
4443
3657
  }
@@ -4446,9 +3660,13 @@ class Video extends Component {
4446
3660
  this.setState({
4447
3661
  idCardNumber: result.data.permission.cardNum,
4448
3662
  idCardName: result.data.permission.nameEN,
3663
+ resultIdCardName: result.data.permission.nameEN,
3664
+ resultIdCardNumber: result.data.permission.cardNum,
4449
3665
  certificateValidity: result.data.permission.validDate,
3666
+ resultCertificateDate: result.data.permission.validDate,
4450
3667
  loadingFace: false,
4451
3668
  cardFailReason: result.code == 50002 ? '证件已过期[#'+result.code+'#]' : '',
3669
+ certificateValidityType: result.code == 50002 ? false : true,
4452
3670
  cardResuly: 'success',
4453
3671
  })
4454
3672
  }
@@ -4475,7 +3693,7 @@ class Video extends Component {
4475
3693
  }
4476
3694
  handleOkFacial = () => {
4477
3695
  if (this.state.faceCustomerType == 2) {
4478
- if (this.state.IDtypeFrontOrBack == '请截取证件头像面') {
3696
+ if (this.state.IDtypeFrontOrBack == IDtypeFront) {
4479
3697
  if(this.state.documentType == 'PASSPORT_CARD' || this.state.documentType == 'TW_PASS_CARD' || this.state.documentType == 'HK_MO_PASS_CARD') {
4480
3698
  this.setState({
4481
3699
  loadingFace: true
@@ -4484,12 +3702,12 @@ class Video extends Component {
4484
3702
  } else {
4485
3703
  this.setState({
4486
3704
  facialImg: ocrImage,
4487
- IDtypeFrontOrBack: '请截取证件国徽面',
3705
+ IDtypeFrontOrBack: IDtypeBack,
4488
3706
  isFaceImage: false,
4489
3707
  })
4490
3708
  }
4491
3709
 
4492
- } else if (this.state.IDtypeFrontOrBack == '请截取证件国徽面') {
3710
+ } else if (this.state.IDtypeFrontOrBack == IDtypeBack) {
4493
3711
  this.setState({
4494
3712
  loadingFace: true
4495
3713
  })
@@ -4507,7 +3725,66 @@ class Video extends Component {
4507
3725
  // formData.append('sessionId', this.state.sessionId);
4508
3726
  // this.uploadImg(formData)
4509
3727
  }
4510
-
3728
+
3729
+ };
3730
+ handleFinishFacial = async () => {
3731
+ let userInfo = this.state.userIdCardResults[this.state.faceCustomerUid]
3732
+ console.log(this.state.faceCustomerUid, userInfo)
3733
+ if (!userInfo || !userInfo.idCardNumber) {
3734
+ console.log('没有身份证ocr信息')
3735
+ return
3736
+ }
3737
+ this.handleCancelFacial();
3738
+ try {
3739
+ // 原始证件参数
3740
+ let data = {
3741
+ idCardName: userInfo.resultIdCardName,
3742
+ staffId: this.props.tellerAccount,
3743
+ activityId: this.props.businessNumber,
3744
+ appAccount: this.state.faceCustomerUid,
3745
+ idCardNumber: userInfo.resultIdCardNumber,
3746
+ sessionId: this.state.sessionId,
3747
+ certificateType: 'ID_CARD',
3748
+ customerName: userInfo.customerName,
3749
+ startDate: userInfo.resultCertificateDate ? userInfo.resultCertificateDate.split('-')[0] : '',
3750
+ endDate: userInfo.resultCertificateDate ? userInfo.resultCertificateDate.split('-')[1] : '',
3751
+ }
3752
+ // 添加修改后的证件参数
3753
+ if (userInfo.authorizeStaffId) {
3754
+ data.authorizeStaffId = userInfo.authorizeStaffId
3755
+ }
3756
+ if (userInfo.idCardName != userInfo.resultIdCardName) {
3757
+ data.reviseIdCardName = userInfo.idCardName
3758
+ }
3759
+ if (userInfo.idCardNumber != userInfo.resultIdCardNumber) {
3760
+ data.reviseIdCardNumber = userInfo.idCardNumber
3761
+ }
3762
+ let reviseCertificateStartDate = userInfo.certificateValidity ? userInfo.certificateValidity.split('-')[0] : '';
3763
+ let reviseCertificateEndDate = userInfo.certificateValidity ? userInfo.certificateValidity.split('-')[1] : '';
3764
+ if (reviseCertificateStartDate != data.startDate) {
3765
+ data.reviseCertificateStartDate = reviseCertificateStartDate
3766
+ }
3767
+ if (reviseCertificateEndDate != data.endDate) {
3768
+ data.reviseCertificateEndDate = reviseCertificateEndDate
3769
+ }
3770
+ let result = await API.confirmCallback(data);
3771
+ console.log('confirmCallback', result)
3772
+ if (result.code == 200) {
3773
+ // console.log(data)
3774
+ let item = this.state.videoList.find(el => el.userId == this.state.faceCustomerUid )
3775
+ item.hasOcr = 2; // 身份证ocr
3776
+ // this.setState({
3777
+ // videoList: this.state.videoList
3778
+ // })
3779
+ this.videoListSort();
3780
+ } else {
3781
+ console.log('1')
3782
+ this.messageClick('保持信息失败', 'error')
3783
+ }
3784
+ } catch (err) {
3785
+ console.log('2',err)
3786
+ this.messageClick('保持信息失败', 'error')
3787
+ }
4511
3788
  };
4512
3789
  handleCancelFacial = () => {
4513
3790
  callNimIM('sendCustomCmdMsg', {
@@ -4558,7 +3835,7 @@ class Video extends Component {
4558
3835
  isFaceImage: false,
4559
3836
  facialImg: ocrImage,
4560
3837
  disabledIdCard: true,
4561
- IDtypeFrontOrBack: '请截取证件头像面',
3838
+ IDtypeFrontOrBack: IDtypeFront,
4562
3839
  facialImgFront: '',
4563
3840
  facialImgBack: '',
4564
3841
  faceResuly: '',
@@ -4718,9 +3995,9 @@ class Video extends Component {
4718
3995
  clickedFacial: false,
4719
3996
  clickedOcr: false,
4720
3997
  isFaceImage: false,
4721
- facialImg: ocrImage,
3998
+ facialImg: this.state.titleModal=='身份验证'? faceImage : ocrImage,
4722
3999
  disabledIdCard: true,
4723
- IDtypeFrontOrBack: '请截取证件头像面',
4000
+ IDtypeFrontOrBack: IDtypeFront,
4724
4001
  facialImgFront: '',
4725
4002
  facialImgBack: '',
4726
4003
  faceResuly: '',
@@ -4741,13 +4018,13 @@ class Video extends Component {
4741
4018
  }
4742
4019
  }
4743
4020
  sgsinImage = () => {
4744
- if (this.state.IDtypeFrontOrBack == '请截取证件头像面') {
4021
+ if (this.state.IDtypeFrontOrBack == IDtypeFront) {
4745
4022
  this.setState({
4746
4023
  facialImg: this.test_controller.TakePicture(1, undefined, undefined, this.state.customOcrSid, 'png'),
4747
4024
  isFaceImage: true,
4748
4025
  facialImgFront: this.test_controller.TakePicture(1, undefined, undefined, this.state.customOcrSid, 'png'),
4749
4026
  })
4750
- } else if (this.state.IDtypeFrontOrBack == '请截取证件国徽面') {
4027
+ } else if (this.state.IDtypeFrontOrBack == IDtypeBack) {
4751
4028
  this.setState({
4752
4029
  facialImg: this.test_controller.TakePicture(1, undefined, undefined, this.state.customOcrSid, 'png'),
4753
4030
  isFaceImage: true,
@@ -4792,38 +4069,10 @@ class Video extends Component {
4792
4069
  console.log(sid)
4793
4070
  let userId = ''
4794
4071
  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
4072
+ for (let i =1;i<=12;i++){
4073
+ if(document.getElementById('video'+ i) && document.getElementById('video'+ i).name == sid && document.getElementById("feedId"+i).innerText){
4074
+ userId = this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId"+i).innerText).uid
4075
+ }
4827
4076
  }
4828
4077
  if (document.getElementById('publish_video1').name == sid) {
4829
4078
  userId = this.props.tellerAccount
@@ -4831,7 +4080,8 @@ class Video extends Component {
4831
4080
  try {
4832
4081
  let result = await API.appGetUsername({
4833
4082
  userId: userId,
4834
- sessionId: this.state.sessionId
4083
+ sessionId: this.state.sessionId,
4084
+ activityId: this.props.businessNumber
4835
4085
  });
4836
4086
  console.log(result)
4837
4087
  let data
@@ -4859,117 +4109,28 @@ class Video extends Component {
4859
4109
  this.setState({
4860
4110
  titleNameRm: data
4861
4111
  })
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
4112
+ } else {
4113
+ for (let i =1;i<=12;i++){
4114
+ if(document.getElementById('video'+i).name == sid){
4115
+
4116
+ if ((typeIntranet && typeIntranet == 2) && (userSide && userSide == 2)) {
4117
+ // this.state.isPIBIntranet[0].type = true
4118
+ this.state.videoList[i-1].isPIBIntranet = true
4119
+ }
4120
+ if (result.data.idCardNumber && result.data.certificateType) {
4121
+ this.state.videoList[i-1].hasOcr = result.data.certificateType.includes('ID_CARD') ? 2 : 1
4122
+ }
4123
+ this.state.videoList[i-1].userId = userId
4124
+ this.state.videoList[i-1].videoName = data
4125
+ this.state.videoList[i-1].userSide = userSide
4126
+ this.state.videoList[i-1].userType = typeIntranet
4127
+ }
4967
4128
  }
4968
4129
  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()
4130
+ videoList: this.state.videoList
4131
+ // videoOneName: this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId"+i).innerText).tag == 'tag1' ? '坐席' : data ? data : ('客户'+i)
4972
4132
  })
4133
+ this.videoListSort();
4973
4134
  }
4974
4135
  if (this.state.isPictureInPicture) {
4975
4136
  this.pictureInPicture('Refresh')
@@ -5062,55 +4223,54 @@ class Video extends Component {
5062
4223
  canvas.height = 540;
5063
4224
 
5064
4225
 
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
- // 获取屏幕流
4226
+ videoMedia.addEventListener('play', (event) => {
4227
+ var $this = this; //cache
4228
+ if ($this.state.operateShow) {
4229
+ isGraffiti = false
4230
+ this.setState({
4231
+ zIndexNum: 999
4232
+ })
4233
+ const canvas = document.getElementById('canvas');
4234
+ canvas.width = this.state.whiteboardWidth
4235
+ }
4236
+ console.log('addEventListener', !$this.paused, !$this.ended, x, y, width, height)
4237
+ loop()
4238
+ function loop() {
4239
+ if (!$this.paused && !$this.ended) {
4240
+ // if(!that.state.tabTitles.find(el=>el.value == 'customerScreen')) {
4241
+ cobj.drawImage(videoMedia, x, y, width, height, 0, 0, 960, 540);
4242
+ // } else {
4243
+ // cobj.fillStyle = 'rgb(0 0 0)'
4244
+ // cobj.fillRect(0,0,960,540)
4245
+ // }
4246
+
4247
+ setTimeout(loop, 1000 / 20); // drawing at 30fps
4248
+ }
4249
+ }
4250
+
4251
+ if (document.getElementById('video20').name) {
4252
+ // 代表已经有了进行切流
4253
+ publish_config.publish_device = 5
4254
+ publish_config.media_type = 1
4255
+ publish_config.degradationType = 2
4256
+ publish_config.sid = document.getElementById('video20').name
4257
+ publish_config.stream = canvas.captureStream(10)
4258
+ publish_config.video_profile_type = 1
4259
+ this.test_controller.ChangeMediaStream(publish_config);
4260
+ } else {
4261
+
4262
+ publish_config.media_type = 1
4263
+ publish_config.publish_device = 5
4264
+ publish_config.need_volume_analyser = true
4265
+ publish_config.video_profile_type = 1
4266
+ publish_config.degradationType = 2
4267
+ publish_config.stream = canvas.captureStream(10)
4268
+ publish_config.publish_video_id = 'video20'
4269
+ publish_config.publish_streamId_id = 'subscribe_streamId10'
4270
+ publish_config.publish_tag = 'projectionWhiteboard'
4271
+ this.test_controller.Publish(publish_config)
4272
+ }
4273
+ }, 0);
5114
4274
  navigator.mediaDevices.getDisplayMedia({
5115
4275
  video: true,
5116
4276
  preferCurrentTab: true,
@@ -5135,17 +4295,6 @@ class Video extends Component {
5135
4295
 
5136
4296
  streamShare = stream
5137
4297
 
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
4298
  stream.getVideoTracks()[0].onended = async () => {
5150
4299
  //单击停止共享按钮后,触发这个事件
5151
4300
  streamShare = ''
@@ -5368,14 +4517,14 @@ class Video extends Component {
5368
4517
  // publish_config.video_profile_diy={width:640, height:360, frameRate:15, bitrate:400}
5369
4518
  // this.test_controller.ChangeMediaStream(publish_config)
5370
4519
  // beautyNum = beautyNum == 0 ? 1 : 0
5371
- if (beautyType) {
5372
- beautyType = false
4520
+ if (this.state.beautyType) {
4521
+ this.state.beautyType = false
5373
4522
  this.setState({
5374
4523
  beautyName: '开启美颜'
5375
4524
  })
5376
4525
  beautySetMode('none')
5377
4526
  } else {
5378
- beautyType = true
4527
+ this.state.beautyType = true
5379
4528
  beautySetMode('beauty')
5380
4529
  this.setState({
5381
4530
  beautyName: '关闭美颜'
@@ -5566,27 +4715,33 @@ class Video extends Component {
5566
4715
  }
5567
4716
  }
5568
4717
  handleChangeCertificateValidity = (event) => {
5569
- if(this.state.documentType == 'ID_CARD' && event.target.value.split('-').length >1 && event.target.value.split('-')[1].split('.').length >2) {
4718
+ // 护照只有起始日期,单独处理
4719
+ if (this.state.documentType == 'PASSPORT_CARD' && event.target.value.split('.').length >2) {
4720
+ if(this.dateNewTime(event.target.value)) {
4721
+ this.setState({
4722
+ certificateValidity: event.target.value,
4723
+ certificateValidityType: true
4724
+ });
4725
+ } else {
4726
+ this.setState({
4727
+ certificateValidity: event.target.value,
4728
+ certificateValidityType: false
4729
+ });
4730
+ }
4731
+ } else if (event.target.value.split('-').length >1 && event.target.value.split('-')[1].split('.').length >2) {
5570
4732
  if(this.dateNewTime(event.target.value.split('-')[1])) {
5571
4733
  this.setState({
5572
4734
  certificateValidity: event.target.value,
5573
4735
  certificateValidityType: true
5574
4736
  });
5575
-
5576
4737
  } else {
5577
4738
  this.setState({
5578
4739
  certificateValidity: event.target.value,
5579
4740
  certificateValidityType: false
5580
4741
  });
5581
4742
  }
5582
- } else{
5583
- this.setState({
5584
- certificateValidity: event.target.value,
5585
- });
5586
4743
  }
5587
4744
 
5588
-
5589
-
5590
4745
  }
5591
4746
  componentDidUpdate(prevProps) {
5592
4747
  console.log('componentDidUpdate', prevProps, prevProps.shareMask, this.props.shareMask)
@@ -5610,7 +4765,7 @@ class Video extends Component {
5610
4765
  documentType: '',
5611
4766
  isCustomerSelect: true,
5612
4767
  customerSelect: this.state.customerList.length == 1 ? 1 : '',
5613
- customerTitleName: '客户身份识别'
4768
+ customerTitleName: '客户身份验证'
5614
4769
  })
5615
4770
  }
5616
4771
  handleOkCustomer = () => {
@@ -5639,15 +4794,27 @@ class Video extends Component {
5639
4794
  "data": {
5640
4795
  'sessionId': this.state.sessionId,
5641
4796
  'userId': this.state.customerList[this.state.customerSelect - 1].customId,
5642
- 'title': '为了有效确认客户身份,请您配合进行我行的身份识别和核验。请您阅读以下内容,若您同意,请您之后在摄像头前出示您的身份证件,我行将对您的身份证件拍照并采集证件信息;同时,我行会对您进行脸部拍照,采集您的脸部图像。',
4797
+ 'title': '为了有效确认客户身份,请您配合汇丰银行(中国)有限公司(”我行”)进行身份识别和核验。请您阅读以下内容。若您同意,请您之后在摄像头前出示您的身份证件,我行将对您的身份证件拍照并采集证件信息;同时,我行会对您进行脸部拍照,采集您的脸部图像。',
4798
+ '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.',
4799
+ 'navBarTitle': '客户授权',
4800
+ 'navBarTitle_en': 'Customer Authorization',
5643
4801
  'list': [
5644
4802
  {
5645
4803
  'id': 1,
5646
- 'content': '您是否授权汇丰中国对您的证件以及脸部进行拍照,采集并留存您的证件信息以及脸部图像以便我行进行身份识别?'
4804
+ 'content': '您是否授权我行对您的证件以及脸部进行拍照,采集并留存您的证件信息以及脸部图像以便我行进行身份识别?',
4805
+ '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
4806
  },
5648
4807
  {
5649
4808
  'id': 2,
5650
- 'content': '为了通过人脸对比进行身份识别和核验,我行需要将您的姓名、身份证件号码和脸部图像发送给中国人民银行或全国公民身份证号码查询服务中心授权的第三方,并由第三方进一步发送至中国人民银行或全国公民身份证号码查询服务中心进行人脸对比或信息核对。'
4809
+ 'content': '为了通过人脸对比进行身份识别和核验,我行需要将您的姓名、身份证件号码和脸部图像发送给中国公安系统(包括其所属机构及代理机构)进行人脸对比及信息核对。',
4810
+ '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?'
4811
+ },
4812
+ {
4813
+ 'id': 3,
4814
+ 'content': '本人同意使用电子签名方式签署作为陪同者所需签署的文件,并授权汇丰银行(中国)有限公司(“汇丰中国”)通过电子签名服务供应商向第三方认证机构提供本人的姓名和身份证件号码,用以申请本人专属的数字证书,本人在电子设备上签署文件即表明本人指示汇丰中国使用本人专属电子证书对该等文件进行电子签名。本人知悉并同意,电子签名和手写签名具有同等法律效力。 \n说明:电子签名服务供应商和第三方认证机构的名称和联系方式如下:' +
4815
+ '\n电子签名服务供应商:杭州尚尚签网络科技有限公司(联系电话:4009936665)\n第三方认证机构: \n北京天威诚信电子商务服务有限公司(联系电话:010-50947500)\n中金金融认证中心有限公司(联系电话:010-83526655)',
4816
+ '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.' +
4817
+ '\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
4818
  }
5652
4819
  ]
5653
4820
  }
@@ -5659,11 +4826,22 @@ class Video extends Component {
5659
4826
  "data": {
5660
4827
  'sessionId': this.state.sessionId,
5661
4828
  'userId': this.state.customerList[this.state.customerSelect - 1].customId,
5662
- 'title': '为了有效确认客户身份,请您配合进行我行的身份识别。请您阅读以下内容,若您同意,请您之后在摄像头前出示您的身份证件,我行将对您的身份证件拍照并采集证件信息;',
4829
+ 'title': '为了有效确认客户身份,请您配合汇丰银行(中国)有限公司(“我行”)进行身份识别。请您阅读以下内容,若您同意,请您之后在摄像头前出示您的身份证件,我行将对您的身份证件拍照并采集证件信息;',
4830
+ '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. ',
4831
+ 'navBarTitle': '客户授权',
4832
+ 'navBarTitle_en': 'Customer Authorization',
5663
4833
  'list': [
5664
4834
  {
5665
4835
  'id': 1,
5666
- 'content': '您是否授权汇丰中国对您的证件进行拍照,采集并留存您的证件信息以便我行进行身份确认?'
4836
+ 'content': '您是否授权我行对您的证件进行拍照,采集并留存您的证件信息以便我行进行身份确认?',
4837
+ 'content_en': 'Do you agree the bank to photograph your ID ,collect and retain ID information and for identification?'
4838
+ },
4839
+ {
4840
+ 'id': 2,
4841
+ 'content': '对于陪同者所需签署的文件,您是否同意使用电子签名方式签署,并授权汇丰银行(中国)有限公司(“汇丰中国”)通过电子签名服务供应商向第三方认证机构提供您本人的姓名和身份证件号码,用以申请您本人专属的数字证书?您本人在电子设备上签署文件即表明您本人指示汇丰中国使用您本人专属电子证书对该等文件进行电子签名。您本人知悉并同意,电子签名和手写签名具有同等法律效力。 \n说明:电子签名服务供应商和第三方认证机构的名称和联系方式如下:' +
4842
+ '\n电子签名服务供应商:杭州尚尚签网络科技有限公司(联系电话:4009936665)\n第三方认证机构: \n北京天威诚信电子商务服务有限公司(联系电话:010-50947500)\n中金金融认证中心有限公司(联系电话:010-83526655)',
4843
+ '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.' +
4844
+ '\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
4845
  }
5668
4846
  ]
5669
4847
  }
@@ -5689,6 +4867,7 @@ class Video extends Component {
5689
4867
  let result = await API.getAuthorizeResult({
5690
4868
  activityId: this.props.businessNumber,
5691
4869
  appAccount: appAccount,
4870
+ certificateType: this.state.documentType == 'ID_CARD'? 'ID': 'NID'
5692
4871
  });
5693
4872
  console.log(result)
5694
4873
  if (result.code == 200 && result.data.ifAuthorize) {
@@ -5734,6 +4913,52 @@ class Video extends Component {
5734
4913
  console.log(err)
5735
4914
  }
5736
4915
  }
4916
+ // 视频窗口排序
4917
+ videoListSort = () => {
4918
+ console.log(this.state.videoList)
4919
+ let list = [...this.state.videoList]
4920
+ list.sort((a, b)=>{
4921
+ // 判断是否有客户
4922
+ if (!b.videoName && a.videoName){
4923
+ return -1
4924
+ }
4925
+ if (!a.videoName && b.videoName){
4926
+ return 1
4927
+ }
4928
+ // 判断是否是坐席
4929
+ // if (a.isTeller != b.isTeller) {
4930
+ // return a.isTeller ? -1 : 1
4931
+ // }
4932
+ // 判断是否是内网pib
4933
+ if (a.isPIBIntranet != b.isPIBIntranet){
4934
+ return !a.isPIBIntranet ? -1 : 1
4935
+ }
4936
+
4937
+ // 判断行内或行外客户
4938
+ if (a.userSide != b.userSide){
4939
+ return a.userSide == 2 ? -1 : 1
4940
+ }
4941
+
4942
+ // 判断行外客户是否做过ocr
4943
+ if (a.hasOcr != b.hasOcr) {
4944
+ return (b.hasOcr || 0) - (a.hasOcr || 0)
4945
+ }
4946
+
4947
+ return a.idIndex - b.idIndex;
4948
+ })
4949
+ console.log('排序后list', list);
4950
+ for(let i=0;i<12;i++){
4951
+ for(let j=0;j<12;j++){
4952
+ if (list[j].videoName == this.state.videoList[i].videoName) {
4953
+ this.state.videoList[i].order = j
4954
+ }
4955
+ }
4956
+ }
4957
+ // console.log(this.state.videoList)
4958
+ this.setState({
4959
+ videoList: this.state.videoList
4960
+ })
4961
+ }
5737
4962
  videoListClick=()=>{
5738
4963
  // console.log(Math.trunc(document.getElementById("videoList").getBoundingClientRect().height),document.getElementById("videoList").scrollHeight)
5739
4964
  // if(Math.trunc(document.getElementById("videoList").getBoundingClientRect().height) >= document.getElementById("videoList").scrollHeight && this.state.isVideoList) {
@@ -5872,7 +5097,7 @@ class Video extends Component {
5872
5097
  <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
5098
  {this.state.operateShow &&
5874
5099
  <OpreateDiv id="operate">
5875
- <span style={{ color: this.state.selectSpan == 'pen' ? '#1890ff' : '#333' }} onClick={() => this.setTool('pen')}>铅笔</span>
5100
+ <span style={{ color: this.state.selectSpan == 'pen' ? '#1890ff' : '#333' }} onClick={() => this.setTool('pen')}>黑笔</span>
5876
5101
  <span style={{ color: this.state.selectSpan == 'redPen' ? '#1890ff' : '#333' }} onClick={() => this.setStrokeColor()}>红笔</span>
5877
5102
  <span style={{ color: this.state.selectSpan == 'eraser' ? '#1890ff' : '#333' }} onClick={() => this.setTool('eraser')}>橡皮</span>
5878
5103
  <span onClick={() => this.setOpreate('undo')}>撤销</span>
@@ -5947,6 +5172,13 @@ class Video extends Component {
5947
5172
 
5948
5173
  </ul>
5949
5174
  </div>
5175
+ {!this.state.loading && this.state.sessionId?
5176
+ <QRCode
5177
+ style={{'position': 'absolute', 'right': '10px', 'top': '-110px'}}
5178
+ value={this.state.sessionId} //value参数为生成二维码的链接
5179
+ size={100} //二维码的宽高尺寸
5180
+ fgColor="#000000" //二维码的颜色
5181
+ /> : null}
5950
5182
  </div>
5951
5183
  }
5952
5184
 
@@ -5984,365 +5216,105 @@ class Video extends Component {
5984
5216
  </div>
5985
5217
 
5986
5218
  </div>
5987
- <div
5988
- className={`itemed ${this.state.isVideoList? 'videoMinutuListClass': 'videoMinutuClass'}`}
5989
- style={{ position: "relative", display: (this.state.videoOneName) ? '' : 'none' }}
5219
+ {
5220
+ this.state.cameraList.map((item, index) => {
5221
+ if (index > 0)
5222
+ return <div
5223
+ className={`itemed ${this.state.isVideoList? 'videoMinutuListClass': 'videoMinutuClass'}`}
5224
+ >
5225
+ <div className="publishVideoDiv">
5226
+
5227
+ <video
5228
+ id={"publish_video" + (index+1)}
5229
+ className={`publishVideoClass`}
5230
+ autoPlay
5231
+ muted={true}
5232
+ disablePictureInPicture
5233
+ />
5234
+ <label style={{ display: 'none' }} id={"publish_streamId"+ (index+1)} type="text" />
5235
+
5236
+ <div id="publish_video_div" className={`tellerTitle titleSamlle`}>
5237
+ <div>
5238
+ {
5239
+ this.state.voiceStatue && <img
5240
+ alt=""
5241
+ src={require("../../assets/img/jingyin.png").default}
5242
+ className="voiceClass"
5243
+ />
5244
+ }
5245
+ <canvas style={{ display: (!this.state.voiceStatue) ? '' : 'none', width: '25px', height: '25px', marginTop: '4px' }} className="canvasClass" id={"publish_volumeView"+ (index+1)} width="40" height="70"></canvas>
5246
+ </div>
5247
+ <div className='titleName' style={{ color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }}>{this.state.titleNameRm}</div>
5248
+ </div>
5249
+ </div>
5250
+ </div>
5251
+ })
5252
+ }
5253
+ {/* <div className={`itemed ${this.state.isVideoList? 'videoMinutuListClass': 'videoMinutuClass'}`}
5254
+ style={{ position: "relative", display: (this.state.videoList[0].videoName) ? '' : 'none' }}
5990
5255
  >
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
5256
  <div className="video1Div">
5999
5257
  <video
6000
5258
  id="video1"
6001
5259
  autoPlay
6002
5260
  muted={true}
6003
5261
  disablePictureInPicture
6004
- className={`video1 ${this.state.noVideoOne ? 'isNoVideo' : ''}`}
5262
+ className={`video1 ${this.state.videoList[0].noVideo ? 'isNoVideo' : ''}`}
6005
5263
  />
6006
5264
  <audio id="audio1" autoPlay />
6007
5265
  <label style={{ display: 'none' }} id="feedId1" type="text" />
6008
5266
 
6009
- <div style={{ display: (this.state.videoOneName) ? '' : 'none' }} className={`customerTitle titleSamlle`}>
5267
+ <div style={{ display: (this.state.videoList[0].videoName) ? '' : 'none' }} className={`customerTitle titleSamlle`}>
6010
5268
  <div onClick={this.muteOpposite.bind(this, 'video1')}>
6011
5269
  {
6012
- this.state.voiceVideoOne && <img
5270
+ this.state.videoList[0].mute && <img
6013
5271
  alt=""
6014
5272
  src={require("../../assets/img/jingyin.png").default}
6015
5273
  className="imgClassVoice voiceVideoClass"
6016
5274
  />
6017
5275
  }
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>
5276
+ <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
5277
  </div>
6020
5278
  <div className='titleName' style={{ color: this.props.titleColor, fontSize: this.props.fontSize + 'px', fontFamily: this.props.fontFamily }}>
6021
- {this.state.videoOneName}
5279
+ {this.state.videoList[0].videoName}
6022
5280
  </div>
6023
5281
 
6024
5282
 
6025
5283
  </div>
6026
5284
  </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>
5285
+ </div> */}
6164
5286
 
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', }}>
5287
+ {
5288
+ this.state.videoList.map((item,index)=>{
5289
+ // if (index!=0)
5290
+ return <div key={index} className={`itemed ${this.state.isVideoList? 'videoMinutuListClass': 'videoMinutuClass'}`} style={{ display: (item.videoName) ? '' : 'none', 'order': item.order}}>
6178
5291
  <video
6179
- id="video7"
5292
+ id={'video'+(item.idIndex)}
6180
5293
  autoPlay
6181
5294
  muted={true}
6182
5295
  disablePictureInPicture
6183
- className={`video ${this.state.noVideoSeven ? 'isNoVideo' : ''}`}
5296
+ className={`video ${item.noVideo ? 'isNoVideo' : ''}`}
6184
5297
  />
6185
- <audio id="audio7" autoPlay />
6186
- <label style={{ display: 'none' }} id="feedId7" type="text" />
5298
+ <audio id={'audio'+(item.idIndex)} autoPlay />
5299
+ <label style={{ display: 'none' }} id={'feedId'+(item.idIndex)} type="text" />
5300
+
5301
+ <div style={{ display: (item.videoName) ? '' : 'none'}} className={`customerTitle titleSamlle`}>
5302
+ {
5303
+ item.mute && <img
5304
+ alt=""
5305
+ src={require("../../assets/img/jingyin.png").default}
5306
+ className="imgClassVoice voiceVideoClass"
5307
+ />
5308
+ }
5309
+ <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
5310
 
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}
5311
+ <div className='titleName' style={{ color: this.props.titleColor,fontSize: this.props.fontSize + 'px',fontFamily : this.props.fontFamily}}>
5312
+ {item.videoName}
6201
5313
  </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
5314
  </div>
6343
5315
  </div>
6344
- </div>
6345
-
5316
+ })
5317
+ }
6346
5318
 
6347
5319
  </div>
6348
5320
  <img id="icon_huatong" style={{ display: 'none' }} src={require("../../assets/img/icon_huatong.png").default}></img>
@@ -6381,7 +5353,7 @@ class Video extends Component {
6381
5353
  virtualization={this.virtualization}
6382
5354
  ></Foot>
6383
5355
  {/* 暂停恢复会话 */}
6384
- <Modal cancelText="取消" okText="确定" visible={this.state.isModalVisible} onOk={this.handleOk}
5356
+ <Modal cancelText="取消" okText="确定" visible={this.state.isModalVisible} maskClosable={false} onOk={this.handleOk}
6385
5357
  onCancel={this.handleCancel}>
6386
5358
  {
6387
5359
  this.state.isSuspend && <span>确定是否恢复会话?</span>
@@ -6391,7 +5363,7 @@ class Video extends Component {
6391
5363
  }
6392
5364
  </Modal>
6393
5365
  {/* 是否退出会议*/}
6394
- <Modal closable={false} centered={true} visible={this.state.isModalVisibleEnd} footer={[
5366
+ <Modal closable={false} centered={true} visible={this.state.isModalVisibleEnd} maskClosable={false} footer={[
6395
5367
  <div key='end'>
6396
5368
  <Button className="modelButtonCancel" onClick={this.handleCancelEnd}>取消</Button>
6397
5369
  <Button className="modelButtonOk" type="primary" danger onClick={this.handleOkEnd}>确定</Button>
@@ -6400,11 +5372,11 @@ class Video extends Component {
6400
5372
  <div className='endModal'>是否要结束并退出会议?</div>
6401
5373
  </Modal>
6402
5374
  {/* ocr及人脸 */}
6403
- <Modal title={this.state.titleModal} width={650} closable={false} centered={true} visible={this.state.isModalVisibleFacial} footer={[
5375
+ <Modal title={this.state.titleModal} width={800} closable={true} maskClosable={false} onCancel={this.handleCancelFacial} centered={true} visible={this.state.isModalVisibleFacial} footer={[
6404
5376
  // ocr及人脸在截图界面的按钮
6405
5377
  this.state.cardResuly == '' && this.state.faceResuly == '' &&<div key='facial'>
6406
5378
  <Button className="modelButtonCancel" onClick={this.handleCancelFacial}>取消</Button>
6407
- <Button className="modelButtonCancel" onClick={this.sgsinImage}>截图</Button>
5379
+ <Button className="modelButtonCancel" onClick={this.sgsinImage}>拍照</Button>
6408
5380
  {/* 再截图后按钮高亮 */}
6409
5381
  {
6410
5382
  this.state.isFaceImage && <Button className="modelButtonOk" type="primary" danger onClick={this.handleOkFacial}>下一步</Button>
@@ -6416,7 +5388,12 @@ class Video extends Component {
6416
5388
  </div>,
6417
5389
  // 人脸识别后的结果界面的按钮
6418
5390
  this.state.cardResuly == '' && this.state.faceResuly != '' &&<div key='facial'>
6419
- <Button className="modelButtonCancel" onClick={this.handleCancelFacial}>完成</Button>
5391
+ {
5392
+ this.state.faceResuly == 'success' && <Button className="modelButtonCancel" onClick={this.handleFinishFacial}>完成</Button>
5393
+ }
5394
+ {
5395
+ this.state.faceResuly == 'fail' && <Button className="modelButtonNo" type="primary" danger>完成</Button>
5396
+ }
6420
5397
  {
6421
5398
  this.state.faceResuly == 'fail' && <Button className="modelButtonOk" type="primary" danger onClick={this.ReIdentification}>重新识别</Button>
6422
5399
  }
@@ -6429,16 +5406,20 @@ class Video extends Component {
6429
5406
  // ocr成功
6430
5407
  this.state.cardResuly == 'success' && <div key='facial'>
6431
5408
  {
6432
- this.state.disabledIdCard && <Button className="modelButtonFaceOk" danger onClick={(e) => this.updateConfirm('noFace')}>修改</Button>
5409
+ this.state.disabledIdCard && <Button className="modelButtonFaceOk" danger onClick={(e) => this.updateConfirm('noFace')}>修正证件信息</Button>
6433
5410
  }
5411
+ <Button className="modelButtonCancel" danger onClick={this.newFaceClick}>返回重拍</Button>
6434
5412
  {
6435
- this.state.documentType == 'ID_CARD' && this.state.certificateValidityType && <Button className="modelButtonFaceOkColor" danger onClick={(e) => this.confirmCallback('face')}>完成并发起人脸识别</Button>
5413
+ this.state.documentType == 'ID_CARD' && this.state.certificateValidityType && <Button className="modelButtonFaceOkColor" danger onClick={(e) => this.handleFinishOcr('face')}>确认信息并发起人脸识别</Button>
6436
5414
  }
6437
5415
  {
6438
- this.state.documentType == 'ID_CARD' && !this.state.certificateValidityType && <Button className="modelButtonFaceOkColorFile" danger >完成并发起人脸识别</Button>
5416
+ this.state.documentType == 'ID_CARD' && !this.state.certificateValidityType && <Button className="modelButtonFaceOkColorFile" danger >确认信息并发起人脸识别</Button>
6439
5417
  }
6440
5418
  {
6441
- this.state.documentType != 'ID_CARD' && <Button className="modelButtonOk" type="primary" danger onClick={(e) => this.confirmCallback('noFace')}>完成</Button>
5419
+ this.state.documentType != 'ID_CARD' &&this.state.certificateValidityType && <Button className="modelButtonOk" type="primary" danger onClick={(e) => this.handleFinishOcr('noFace')}>完成</Button>
5420
+ }
5421
+ {
5422
+ this.state.documentType != 'ID_CARD' && !this.state.certificateValidityType && <Button className="modelButtonFaceOkColorFile" danger >完成</Button>
6442
5423
  }
6443
5424
 
6444
5425
  </div>,
@@ -6449,11 +5430,16 @@ class Video extends Component {
6449
5430
  </div>
6450
5431
  ]}>
6451
5432
  <Spin spinning={this.state.loadingFace} tip="识别中...">
5433
+ <div style={{display: 'flex', padding: '10px 20px'}}>
5434
+ <Step style={{marginTop: '10px'}} current={this.state.titleModal == '身份验证'?3:2} ></Step>
6452
5435
  <div className="faceBody">
6453
5436
  {this.state.cardResuly == '' && <div className='faceCardImg'>
6454
5437
 
6455
5438
  {
6456
- this.state.titleModal == 'OCR识别' && <div className='titleDiv'>{this.state.IDtypeFrontOrBack}</div>
5439
+ this.state.titleModal == '拍摄证件照片' && <div className='titleDiv'>{this.state.IDtypeFrontOrBack}</div>
5440
+ }
5441
+ {
5442
+ this.state.titleModal == '身份验证' && this.state.faceResuly == '' && <div className='titleDiv'>请确保陪同者头像清楚显示在前置镜头前</div>
6457
5443
  }
6458
5444
 
6459
5445
  {
@@ -6462,7 +5448,7 @@ class Video extends Component {
6462
5448
  {
6463
5449
  this.state.videoType == 'error' && <div className='errorClassFace videoErrorClass'>
6464
5450
  <img src={require("../../assets/img/tooltips2_fail.png").default} alt="" ></img>
6465
- 请点击“截图”拍摄客户人像的照片。若界面无客户头像显示,请检查网络并保持网络稳定后,点击“截图”重试
5451
+ 请点击“拍照”拍摄客户人像的照片。若界面无客户头像显示,请检查网络并保持网络稳定后,点击“拍照”重试
6466
5452
  </div>
6467
5453
  }
6468
5454
  <video disablePictureInPicture className="faceImg" id="publish_video_2" autoPlay muted={true}></video>
@@ -6480,17 +5466,17 @@ class Video extends Component {
6480
5466
  this.state.cardResuly == 'success' && <div className='successClassFace'>
6481
5467
  <img src={require("../../assets/img/tooltips1_pass.png").default} alt="" ></img>
6482
5468
  {
6483
- this.state.cardFailReason && <span>识别成功 -- {this.state.cardFailReason}</span>
5469
+ this.state.cardFailReason && <span>{this.state.cardFailReason}</span>
6484
5470
  }
6485
5471
  {
6486
- !this.state.cardFailReason && <span>识别成功</span>
5472
+ !this.state.cardFailReason && <span>识别证件信息成功</span>
6487
5473
  }
6488
5474
 
6489
5475
  </div>
6490
5476
  }
6491
5477
  {
6492
5478
  this.state.cardResuly == 'fail' && <div className='errorClassFace'>
6493
- <img src={require("../../assets/img/tooltips2_fail.png").default} alt="" ></img>识别失败--{this.state.cardFailReason}</div>
5479
+ <img src={require("../../assets/img/tooltips2_fail.png").default} alt="" ></img>识别证件信息失败--{this.state.cardFailReason}</div>
6494
5480
  }
6495
5481
  <div className='imgDIV'>
6496
5482
  <img className="faceImgCard" src={this.state.facialImgFront} alt=""></img>
@@ -6506,16 +5492,16 @@ class Video extends Component {
6506
5492
  </div>
6507
5493
  }
6508
5494
  {
6509
- this.state.titleModal == '人脸识别' && this.state.faceResuly != '' && <div className='resuleCard'>
5495
+ this.state.titleModal == '身份验证' && this.state.faceResuly != '' && <div className='resuleCard'>
6510
5496
  {
6511
5497
  this.state.faceResuly == 'success' && <div className='successClassFace'>
6512
5498
  <img src={require("../../assets/img/tooltips1_pass.png").default} alt="" ></img>
6513
5499
 
6514
- 人脸识别成功</div>
5500
+ 认证通过</div>
6515
5501
  }
6516
5502
  {
6517
5503
  this.state.faceResuly == 'fail' && <div className='errorClassFace'>
6518
- <img src={require("../../assets/img/tooltips2_fail.png").default} alt="" ></img>人脸识别失败--{this.state.faceFailReason}</div>
5504
+ <img src={require("../../assets/img/tooltips2_fail.png").default} alt="" ></img>{this.state.faceFailReason}</div>
6519
5505
  }
6520
5506
  <div><span>客户姓名</span> <input disabled type="text" value={this.state.idCardNameFace}/></div>
6521
5507
  <div><span>身份证号</span> <input disabled type="text" value={this.state.idCardNumberFace}/></div>
@@ -6524,9 +5510,10 @@ class Video extends Component {
6524
5510
  }
6525
5511
 
6526
5512
  </div>
5513
+ </div>
6527
5514
  </Spin>
6528
5515
  </Modal>
6529
- <Modal title="经理人员授权" closable={false} centered={true} visible={this.state.isModalVisibleSFP}
5516
+ <Modal title="经理人员授权" closable={false} centered={true} visible={this.state.isModalVisibleSFP} maskClosable={false}
6530
5517
  footer={[
6531
5518
  <div key='end'>
6532
5519
  <Button className="modelButtonCancel" onClick={this.handleCancelSFP}>取消</Button>
@@ -6559,7 +5546,7 @@ class Video extends Component {
6559
5546
  </div>
6560
5547
  </Spin>
6561
5548
  </Modal>
6562
- <Modal title={this.state.customerTitleName} closable={false} centered={true} visible={this.state.isModalVisibleCustomer}
5549
+ <Modal width={650} title={this.state.customerTitleName} closable={false} centered={true} visible={this.state.isModalVisibleCustomer} maskClosable={false}
6563
5550
  footer={[
6564
5551
  <div key='end'>
6565
5552
 
@@ -6591,12 +5578,13 @@ class Video extends Component {
6591
5578
 
6592
5579
  </div>
6593
5580
  ]}>
6594
- <div>
6595
- <div className='selectCustomer'>
5581
+ <div style={{display: 'flex', padding: '10px 20px'}}>
5582
+ <Step current={this.state.isCustomerSelect?0:1}></Step>
5583
+ <div>
6596
5584
  {
6597
5585
  this.state.isCustomerSelect && <div>
6598
- <div>
6599
- 请选择进行身份识别的客户
5586
+ <div className='CustomerSelectTitle'>
5587
+ 请选择进行身份识别的客户(陪同者)
6600
5588
  </div>
6601
5589
  <div>
6602
5590
  <Radio.Group onChange={this.onChangeOCRCustomer} value={this.state.customerSelect}>
@@ -6619,8 +5607,8 @@ class Video extends Component {
6619
5607
  this.state.documentError != '' && <div className='errorClassFace'>
6620
5608
  <img src={require("../../assets/img/tooltips2_fail.png").default} alt="" ></img>{this.state.documentError}</div>
6621
5609
  }
6622
- <div>
6623
- 请您确认您的身份证件类型
5610
+ <div className='CustomerSelectTitle'>
5611
+ 请选择您的身份证件类型
6624
5612
  </div>
6625
5613
  <div>
6626
5614
  <Radio.Group onChange={this.onChangeDocumentType} value={this.state.documentType}>
@@ -6629,7 +5617,7 @@ class Video extends Component {
6629
5617
  <Radio value={'PASSPORT_CARD'}>护照</Radio>
6630
5618
  <Radio value={'TW_PASS_CARD'}>台湾来往大陆通行证</Radio>
6631
5619
  <Radio value={'HK_MO_PASS_CARD'}>港澳来往大陆通行证</Radio>
6632
- <Radio value={'HK_MO_RESIDENCE_CARD'}>港澳台居民居住证</Radio>
5620
+ <Radio value={'HK_MO_RESIDENCE_CARD'}>港澳居民居住证</Radio>
6633
5621
  <Radio value={'TW_RESIDENCE_CARD'}>台湾居民居住证</Radio>
6634
5622
  {/* <Radio value={'FOREIGNER_RESIDENCE_CARD'}>外国人永久居住证</Radio> */}
6635
5623
  </Space>
@@ -6642,7 +5630,7 @@ class Video extends Component {
6642
5630
 
6643
5631
  </Modal>
6644
5632
 
6645
- <Modal className="modelClass" title="邀请参会人员" closable={false} centered={true} visible={this.state.isModalVisibleInvitation} footer={[
5633
+ <Modal className="modelClass" maskClosable={false} title="邀请参会人员" closable={false} centered={true} visible={this.state.isModalVisibleInvitation} footer={[
6646
5634
  <div key='invitation'>
6647
5635
  <Button className="modelButtonCancel" onClick={this.handleCancelInvitation}>取消</Button>
6648
5636
  {
@@ -6698,7 +5686,7 @@ class Video extends Component {
6698
5686
  ></CanvasDraw> */}
6699
5687
  </div>
6700
5688
  </Modal>
6701
- <Modal title="设置视频设备" width={650} closable={false} centered={true} visible={this.state.isModalVisibleInspection} footer={[
5689
+ <Modal title="设置视频设备" maskClosable={false} width={650} closable={false} centered={true} visible={this.state.isModalVisibleInspection} footer={[
6702
5690
  <div key='inspection'>
6703
5691
  <Button className="modelButtonCancel" onClick={this.handleCancelInspection}>取消</Button>
6704
5692
  <Button className="modelButtonOk" type="primary" danger onClick={this.handleOkInspection}>确定</Button>