react_hsbc_teller 0.2.0 → 0.2.4

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.
@@ -20,7 +20,7 @@ import Spin from "antd/lib/spin";
20
20
  import 'antd/lib/spin/style'
21
21
  import { Button } from '../../../node_modules/antd/lib/index';
22
22
  import CanvasDraw from "react-canvas-draw";
23
- import { FormattedMessage, injectIntl } from 'react-intl';
23
+ import { FormattedMessage, injectIntl } from 'react-intl';
24
24
  const LEAVE_TYPE = {
25
25
  TELLER_EXIT: '1', // 坐席退出
26
26
  ROOM_DESTROYED: '-1', // 房间异常
@@ -29,6 +29,9 @@ const LEAVE_TYPE = {
29
29
  class Video extends Component {
30
30
  signCanvas = React.createRef();
31
31
  state = {
32
+ isWhiteboard: false,
33
+ isSelect: 'video',
34
+ isPDF: false,
32
35
  loading: false,
33
36
  isModalVisibleSign: false,
34
37
  titleModal: '人脸识别',
@@ -38,7 +41,6 @@ class Video extends Component {
38
41
  employeeNumber: '',
39
42
  employeeName: '',
40
43
  isModalVisibleInvitation: false,
41
- isPDF: false,
42
44
  roomCustomerList: [],
43
45
  facialImg: '',
44
46
  isModalVisibleFacial: false,
@@ -50,7 +52,7 @@ class Video extends Component {
50
52
  voiceStatue: false,
51
53
  voiceImg: voiceImgOpen,
52
54
  isBigVideo: 'video1',
53
- isCustomer: false,
55
+ isCustomer: true,
54
56
  publishDevic: 1,
55
57
  isSharedScreen: false,
56
58
  isSuspend: false,
@@ -61,13 +63,10 @@ class Video extends Component {
61
63
  workSpaceId: '',
62
64
  bizName: '',
63
65
  appId: '',
64
- // room_server_url: 'wss://cn-hangzhou-mrtc.cloud.alipay.com/ws',
65
- room_server_url: 'wss://mrtc.mpaas.cn-hangzhou.aliyuncs.com/ws',
66
66
  channelId: this.props.roomId,
67
67
  rtoken: this.props.mtoken,
68
68
  sessionId: this.props.sessionId,
69
69
  imRoomId: this.props.imRoomId,
70
- html_string: '<span style="color:red">123456</span>',
71
70
  };
72
71
  // eslint-disable-next-line no-undef
73
72
  test_controller = '';
@@ -128,7 +127,7 @@ class Video extends Component {
128
127
  config_param.biz_name = this.state.bizName; // 'demo'
129
128
  config_param.appId = this.state.appId;
130
129
 
131
- config_param.room_server_url = this.state.room_server_url;
130
+ config_param.room_server_url = this.props.roomServerUrl;
132
131
  // 允许最大断网时间 (超过未重连, 直接关闭)
133
132
  config_param.network_check_timeout = 10000;
134
133
  this.test_controller.Connect(config_param)
@@ -419,25 +418,25 @@ class Video extends Component {
419
418
  };
420
419
  // 画中画
421
420
  pictureInPicture = () => {
422
- const publish_config = {};
423
- publish_config.media_type = 1;
424
- publish_config.publish_device = 4;
425
- publish_config.need_volume_analyser = true;
426
- publish_config.video_profile_type = 3;
427
- publish_config.part_of_screen_id = 'touBoxItem';
428
- publish_config.publish_video_id = 'video3';
429
- publish_config.publish_streamId_id = 'subscribe_streamId3';
430
- // publish_config.publish_tag = 'sharedScreen'
431
- this.test_controller.Publish(publish_config);
432
- callNimIM('sendCustomCmdMsg', {
433
- customId: this.state.imRoomId,
434
- content: JSON.stringify({
435
- 'typeId': 2030,
436
- 'sessionId': this.state.sessionId,
437
- 'sharedScreen': 1,
438
- 'tellerId': this.props.tellerAccount
439
- })
440
- });
421
+ // const publish_config = {};
422
+ // publish_config.media_type = 1;
423
+ // publish_config.publish_device = 4;
424
+ // publish_config.need_volume_analyser = true;
425
+ // publish_config.video_profile_type = 3;
426
+ // publish_config.part_of_screen_id = 'touBoxItem';
427
+ // publish_config.publish_video_id = 'video3';
428
+ // publish_config.publish_streamId_id = 'subscribe_streamId3';
429
+ // // publish_config.publish_tag = 'sharedScreen'
430
+ // this.test_controller.Publish(publish_config);
431
+ // callNimIM('sendCustomCmdMsg', {
432
+ // customId: this.state.imRoomId,
433
+ // content: JSON.stringify({
434
+ // 'typeId': 2030,
435
+ // 'sessionId': this.state.sessionId,
436
+ // 'sharedScreen': 1,
437
+ // 'tellerId': this.props.tellerAccount
438
+ // })
439
+ // });
441
440
  if (this.isFileSuccuse()) {
442
441
  const width = 640;
443
442
  const height = 480;
@@ -514,6 +513,16 @@ class Video extends Component {
514
513
  if (Mival.sessionId == this.state.sessionId) {
515
514
  this.endSession('customerHangUp')
516
515
  }
516
+ } else if (Mival.typeId == 1215) {
517
+ // 一炒多的图片
518
+ if (Mival.sessionId == this.state.sessionId) {
519
+ this.props.imgCallback(Mival.data.type, Mival.data.file) // 文字抄录和风险抄录,3--风险,,2--文字
520
+ }
521
+ } else if (Mival.typeId == 1216) {
522
+ // 签字回调
523
+ if (Mival.sessionId == this.state.sessionId) {
524
+ this.props.signatureCallback()
525
+ }
517
526
  }
518
527
  };
519
528
 
@@ -617,7 +626,7 @@ class Video extends Component {
617
626
 
618
627
  this.test_controller.OnCreateRoomSucc = (room_id, rtoken) => {
619
628
  console.log('创建房间成功', room_id, rtoken);
620
- this.setState({
629
+ this.setState({
621
630
  channelId: room_id,
622
631
  rtoken: rtoken
623
632
  });
@@ -1048,7 +1057,8 @@ class Video extends Component {
1048
1057
  tellerId: this.props.tellerAccount
1049
1058
  });
1050
1059
  this.setState({
1051
- isCustomer: false
1060
+ isCustomer: false,
1061
+ isWhiteboard: false,
1052
1062
  });
1053
1063
  this.props.onLeaveRoom({
1054
1064
  code: LEAVE_TYPE.TELLER_EXIT,
@@ -1087,34 +1097,37 @@ class Video extends Component {
1087
1097
  this.setState({
1088
1098
  loading: true,
1089
1099
  })
1100
+ console.log(this.props.resourcePath + "/log4b.js")
1090
1101
  const _dependScripts = [
1091
- "https://counter-web.leimondata.cn:7199/log4b.js",
1092
- "https://counter-web.leimondata.cn:7199/meeting_api_util.js",
1093
- "https://counter-web.leimondata.cn:7199/mcu.js",
1094
- "https://counter-web.leimondata.cn:7199/client_record.js",
1095
- "https://counter-web.leimondata.cn:7199/meeting_vod.js",
1096
- "https://counter-web.leimondata.cn:7199/remote_record.js",
1097
- "https://counter-web.leimondata.cn:7199/meeting_invite.js",
1098
- "https://counter-web.leimondata.cn:7199/meeting_im.js",
1099
- "https://counter-web.leimondata.cn:7199/meeting_camera_stream.js",
1100
- "https://counter-web.leimondata.cn:7199/meeting_file_stream.js",
1101
- "https://counter-web.leimondata.cn:7199/meeting_desk_stream.js",
1102
- "https://counter-web.leimondata.cn:7199/meeting_html_stream.js",
1103
- "https://counter-web.leimondata.cn:7199/meeting_beautify_stream.js",
1104
- "https://counter-web.leimondata.cn:7199/stream.js",
1105
- "https://counter-web.leimondata.cn:7199/room.js",
1106
- "https://counter-web.leimondata.cn:7199/backgroundBlur.js",
1107
- "https://counter-web.leimondata.cn:7199/meeting_api.js",
1108
- "https://counter-web.leimondata.cn:7199/html2image.js",
1109
- "https://counter-web.leimondata.cn:7199/reconnecting-websocket.min.js",
1110
- "https://counter-web.leimondata.cn:7199/mtc_api.js",
1111
- "https://counter-web.leimondata.cn:7199/BandwidthHandler.js",
1112
- "https://gw.alipayobjects.com/os/lib/recordrtc/5.5.9/RecordRTC.min.js",
1113
- "https://counter-web.leimondata.cn:7199/pdf.js",
1114
- "https://counter-web.leimondata.cn:7199/EBML.js",
1115
- "https://counter-web.leimondata.cn:7199/adapter.js",
1116
- "https://counter-web.leimondata.cn:7199/beauty.js",
1117
- "https://counter-web.leimondata.cn:7199/getMediaInfo.js",
1102
+ // https://counter-web.leimondata.cn:7199
1103
+ this.props.resourcePath + "/log4b.js",
1104
+ this.props.resourcePath + "/meeting_api_util.js",
1105
+ this.props.resourcePath + "/mcu.js",
1106
+ this.props.resourcePath + "/client_record.js",
1107
+ this.props.resourcePath + "/meeting_vod.js",
1108
+ this.props.resourcePath + "/remote_record.js",
1109
+ this.props.resourcePath + "/meeting_invite.js",
1110
+ this.props.resourcePath + "/meeting_im.js",
1111
+ this.props.resourcePath + "/meeting_camera_stream.js",
1112
+ this.props.resourcePath + "/meeting_file_stream.js",
1113
+ this.props.resourcePath + "/meeting_desk_stream.js",
1114
+ this.props.resourcePath + "/meeting_html_stream.js",
1115
+ this.props.resourcePath + "/meeting_beautify_stream.js",
1116
+ this.props.resourcePath + "/stream.js",
1117
+ this.props.resourcePath + "/room.js",
1118
+ this.props.resourcePath + "/backgroundBlur.js",
1119
+ this.props.resourcePath + "/meeting_api.js",
1120
+ this.props.resourcePath + "/html2image.js",
1121
+ this.props.resourcePath + "/reconnecting-websocket.min.js",
1122
+ this.props.resourcePath + "/mtc_api.js",
1123
+ this.props.resourcePath + "/BandwidthHandler.js",
1124
+ this.props.resourcePath + "/RecordRTC.min.js",
1125
+ // "https://gw.alipayobjects.com/os/lib/recordrtc/5.5.9/RecordRTC.min.js",
1126
+ this.props.resourcePath + "/pdf.js",
1127
+ this.props.resourcePath + "/EBML.js",
1128
+ this.props.resourcePath + "/adapter.js",
1129
+ this.props.resourcePath + "/beauty.js",
1130
+ this.props.resourcePath + "/getMediaInfo.js",
1118
1131
  ]
1119
1132
  const that = this
1120
1133
  let i = 0
@@ -1169,8 +1182,8 @@ class Video extends Component {
1169
1182
  } else {
1170
1183
  setTimeout(() => {
1171
1184
  this.setState({
1172
- screenName: this.props.intl.formatMessage({id: 'shareScreen'}),
1173
- suspendName: this.props.intl.formatMessage({id: 'suspend'}),
1185
+ screenName: this.props.intl.formatMessage({ id: 'shareScreen' }),
1186
+ suspendName: this.props.intl.formatMessage({ id: 'suspend' }),
1174
1187
  })
1175
1188
  }, 50);
1176
1189
  this.addToScript()
@@ -1288,24 +1301,60 @@ class Video extends Component {
1288
1301
  if (this.isFileSuccuse()) {
1289
1302
  const publish_config = {};
1290
1303
  if (this.state.isSharedScreen) {
1291
- publish_config.publish_device = 1;
1292
- publish_config.media_type = 1;
1293
- publish_config.sid = document.getElementById('publish_video1').name;
1294
- publish_config.video_profile_type = 5;
1295
- this.test_controller.ChangeMediaStream(publish_config);
1304
+ if (this.state.isWhiteboard) {
1305
+ publish_config.publish_device = 4
1306
+ publish_config.media_type = 1
1307
+ publish_config.sid = document.getElementById('video10').name
1308
+ publish_config.part_of_screen_id = 'touBoxItem'
1309
+ publish_config.video_profile_type = 5
1310
+ this.test_controller.ChangeMediaStream(publish_config);
1311
+ this.setState({
1312
+ isPDF: true,
1313
+ isSelect: 'noVideo',
1314
+ })
1315
+ } else {
1316
+ this.test_controller.UnPublish(document.getElementById('video10').name)
1317
+ this.setState({
1318
+ isPDF: false,
1319
+ isSelect: 'video',
1320
+ })
1321
+ }
1296
1322
  this.setState({
1297
1323
  publishDevic: 1,
1298
1324
  isSharedScreen: false,
1325
+
1299
1326
  screenName: '投屏'
1300
1327
  });
1301
1328
  } else {
1302
- publish_config.media_type = 1;
1303
- publish_config.publish_device = 2;
1304
- publish_config.video_profile_type = 5;
1305
- publish_config.sid = document.getElementById('publish_video1').name;
1306
- this.test_controller.ChangeMediaStream(publish_config);
1329
+ if (document.getElementById('video10').name) {
1330
+ publish_config.media_type = 1;
1331
+ publish_config.publish_device = 2;
1332
+ publish_config.video_profile_type = 5;
1333
+ publish_config.sid = document.getElementById('video10').name;
1334
+ this.test_controller.ChangeMediaStream(publish_config);
1335
+ } else {
1336
+ publish_config.media_type = 1
1337
+ publish_config.publish_device = 2
1338
+ publish_config.need_volume_analyser = true
1339
+ publish_config.video_profile_type = 5
1340
+ publish_config.publish_video_id = 'video10'
1341
+ publish_config.publish_streamId_id = 'subscribe_streamId10'
1342
+ publish_config.publish_tag = ''
1343
+ this.test_controller.Publish(publish_config)
1344
+ }
1345
+
1346
+
1347
+ // publish_config.media_type = 1;
1348
+ // publish_config.publish_device = 2;
1349
+ // publish_config.video_profile_type = 5;
1350
+ // publish_config.sid = document.getElementById('publish_video1').name;
1351
+ // this.test_controller.ChangeMediaStream(publish_config);
1307
1352
  this.setState({
1308
- publishDevic: 2
1353
+ publishDevic: 2,
1354
+ isSelect: 'noVideo',
1355
+ isSharedScreen: true,
1356
+ screenName: '取消共享',
1357
+ isPDF: false
1309
1358
  })
1310
1359
  }
1311
1360
  }
@@ -1493,7 +1542,7 @@ class Video extends Component {
1493
1542
  })
1494
1543
  }
1495
1544
  componentWillReceiveProps(props) {
1496
- this.setState({
1545
+ this.setState({
1497
1546
  channelId: props.roomId,
1498
1547
  rtoken: props.mtoken,
1499
1548
  sessionId: props.sessionId,
@@ -1541,83 +1590,159 @@ class Video extends Component {
1541
1590
  file: this.signCanvas.current.canvas.drawing.toDataURL('image/png')
1542
1591
  })
1543
1592
  }
1544
- render() {
1593
+ switchExternal = () => {
1594
+ if(!this.state.isWhiteboard) {
1595
+ const publish_config = {};
1596
+ this.setState({
1597
+ isPDF: true,
1598
+ isWhiteboard: true,
1599
+ isSelect: 'noVideo',
1600
+ })
1601
+ if (document.getElementById('video10').name) {
1602
+ // 代表已经有了进行切流
1603
+ publish_config.publish_device = 4
1604
+ publish_config.media_type = 1
1605
+ publish_config.sid = document.getElementById('video10').name
1606
+ publish_config.part_of_screen_id = 'touBoxItem'
1607
+ publish_config.video_profile_type = 5
1608
+ this.test_controller.ChangeMediaStream(publish_config);
1609
+ } else {
1610
+
1611
+ publish_config.media_type = 1
1612
+ publish_config.publish_device = 4
1613
+ publish_config.need_volume_analyser = true
1614
+ publish_config.video_profile_type = 5
1615
+ publish_config.part_of_screen_id = 'touBoxItem';
1616
+ publish_config.publish_video_id = 'video10'
1617
+ publish_config.publish_streamId_id = 'subscribe_streamId10'
1618
+ publish_config.publish_tag = ''
1619
+ this.test_controller.Publish(publish_config)
1620
+ }
1621
+ } else{
1622
+ message.success('当前已经切换RM白板')
1623
+ }
1624
+
1625
+
1626
+ }
1627
+ switchSelect = () => {
1628
+ if (this.state.isSelect == 'video') {
1629
+ if (document.getElementById('video10').name) {
1630
+ this.setState({
1631
+ isSelect: 'noVideo',
1632
+ })
1633
+ } else {
1634
+ message.success('当前无签字白板')
1635
+ }
1545
1636
 
1637
+ } else {
1638
+ this.setState({
1639
+ isSelect: 'video',
1640
+ })
1641
+ }
1642
+ }
1643
+ render() {
1644
+ var pdfChildren
1645
+ if (this.props.children) {
1646
+ pdfChildren = React.cloneElement(this.props.children, { width: 100, height: 100, id: 12 })
1647
+ }
1546
1648
  return (
1547
-
1548
1649
  <div className="all">
1549
1650
  <Spin spinning={this.state.loading} tip="视频初始化中...">
1550
- <Header></Header>
1551
- <div className="health">
1552
- <div className="wrapper">
1553
- <div
1554
- className={`itemed ${this.state.isBigVideo == 'video1' ? 'item1' : ""}`}
1555
- // className="itemed item1"
1556
- style={{ position: "relative" }}
1557
- onClick={this.enlargeClick.bind(this, 'isLangVideo1')}
1558
- >
1559
- {
1560
- this.state.customAudioed && <img
1561
- alt=""
1562
- src={require("../../assets/img/yingpin.png").default}
1563
- style={{ width: "100%", height: "100%" }}
1564
- ></img>
1565
- }
1566
- <div className="video1Div" style={{ display: (!this.state.customAudioed) ? '' : 'none', }}>
1567
- <video
1568
- id="video1"
1569
- autoPlay
1570
- muted={true}
1571
- className="video1"
1572
- />
1573
- <audio id="audio1" autoPlay />
1574
- <label style={{ display: 'none' }} id="feedId1" type="text" />
1575
- <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="subscribe_volumeView1" width="70" height="70"></canvas>
1651
+ <Header></Header>
1652
+ <div className="health">
1653
+ <div className="projection">
1654
+ <div className="button">
1655
+ <div className={`${this.state.isSelect == 'video' ? 'selectSee' : "noSelest"}`} onClick={this.switchSelect.bind(this)}>视频画面</div>
1656
+ <div className={`${this.state.isSelect == 'noVideo' ? 'selectSee' : "noSelest"}`} onClick={this.switchSelect.bind(this)}>投屏白板</div>
1657
+ </div>
1658
+ <div className="videoDiv" style={{ display: (this.state.isSelect == 'noVideo') ? '' : 'none', }}>
1659
+ <div style={{ display: (this.state.isPDF) ? '' : 'none', }} id="touBoxItem">
1660
+ {pdfChildren}
1661
+ </div>
1662
+ <div style={this.state.isPDF ? { display: 'none' } : {}}>
1663
+ <video
1664
+ id="video10"
1665
+ autoPlay
1666
+ muted={true}
1667
+ className="video"
1668
+ />
1669
+ <audio id="audio10" autoPlay />
1670
+ <label style={{ display: 'none' }} id="feedId10" type="text" />
1671
+ {/* <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="subscribe_volumeView10" width="70" height="70"></canvas> */}
1672
+
1673
+ </div>
1674
+
1576
1675
  </div>
1577
1676
  </div>
1578
- <div
1579
- className={`itemed ${this.state.isSharedScreen || this.state.publishDevic == 4 ? '' : (this.state.isBigVideo == 'publish_video1' ? 'item1 isBack' : (this.state.isCustomer ? 'isBack' : 'itemPublic'))}`}
1580
- onClick={this.enlargeClick.bind(this, 'isLangPublishVideo1')}
1581
- >
1582
- <div className="publishVideoDiv">
1677
+ <div className="wrapper">
1678
+ <div
1679
+ className={`itemed ${this.state.isBigVideo == 'video1' ? 'item1' : ""}`}
1680
+ // className="itemed item1"
1681
+ style={{ position: "relative" }}
1682
+ onClick={this.enlargeClick.bind(this, 'isLangVideo1')}
1683
+ >
1583
1684
  {
1584
- this.state.audioed && <img
1685
+ this.state.customAudioed && <img
1585
1686
  alt=""
1586
1687
  src={require("../../assets/img/yingpin.png").default}
1587
- className="imgClass"
1588
- />
1688
+ style={{ width: "100%", height: "100%" }}
1689
+ ></img>
1589
1690
  }
1590
- {
1591
- this.state.isSuspend && <img
1592
- alt=""
1593
- src={require("../../assets/img/zanTing.png").default}
1594
- className="imgClass"
1691
+ <div className="video1Div" style={{ display: (!this.state.customAudioed) ? '' : 'none', }}>
1692
+ <video
1693
+ id="video1"
1694
+ autoPlay
1695
+ muted={true}
1696
+ className="video1"
1595
1697
  />
1596
- }
1597
- {
1698
+ <audio id="audio1" autoPlay />
1699
+ <label style={{ display: 'none' }} id="feedId1" type="text" />
1700
+ <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="subscribe_volumeView1" width="70" height="70"></canvas>
1701
+ </div>
1702
+ </div>
1703
+ <div
1704
+ className={`itemed ${this.state.publishDevic == 4 ? '' : (this.state.isBigVideo == 'publish_video1' ? 'item1 isBack' : (this.state.isCustomer ? 'isBack' : 'itemPublic'))}`}
1705
+ onClick={this.enlargeClick.bind(this, 'isLangPublishVideo1')}
1706
+ >
1707
+ <div className="publishVideoDiv">
1708
+ {
1709
+ this.state.audioed && <img
1710
+ alt=""
1711
+ src={require("../../assets/img/yingpin.png").default}
1712
+ className="imgClass"
1713
+ />
1714
+ }
1715
+ {
1716
+ this.state.isSuspend && <img
1717
+ alt=""
1718
+ src={require("../../assets/img/zanTing.png").default}
1719
+ className="imgClass"
1720
+ />
1721
+ }
1722
+ {/* {
1598
1723
  this.state.isSharedScreen && <span
1599
1724
  className="sharedScreen"
1600
1725
  >
1601
1726
  屏幕共享中
1602
1727
  </span>
1603
- }
1604
- <video
1605
- style={{ display: (!this.state.audioed && !this.state.isSuspend) ? '' : 'none', }}
1606
- id="publish_video1"
1607
- className={`publishVideoClass ${this.state.isCustomer ? '' : "videoFit"}`}
1608
- onClick={this.enlargeClick.bind(this, 'isLangVideo2')}
1609
- autoPlay
1610
- muted={true}
1611
- />
1612
- <audio id="audio1" autoPlay />
1613
- <label style={{ display: 'none' }} id="publish_streamId1" type="text" />
1614
- <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="publish_volumeView" width="70" height="70"></canvas>
1728
+ } */}
1729
+ <video
1730
+ style={{ display: (!this.state.audioed && !this.state.isSuspend) ? '' : 'none', }}
1731
+ id="publish_video1"
1732
+ className={`publishVideoClass ${this.state.isCustomer ? '' : "videoFit"}`}
1733
+ onClick={this.enlargeClick.bind(this, 'isLangVideo2')}
1734
+ autoPlay
1735
+ muted={true}
1736
+ />
1737
+ <audio id="audio1" autoPlay />
1738
+ <label style={{ display: 'none' }} id="publish_streamId1" type="text" />
1739
+ <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="publish_volumeView" width="70" height="70"></canvas>
1740
+ </div>
1741
+
1615
1742
  </div>
1743
+ <div className={`itemed ${this.state.isBigVideo == 'video2' ? 'item1' : ""}`}>
1616
1744
 
1617
- </div>
1618
- <div className={`itemed ${this.state.isBigVideo == 'video2' ? 'item1' : ""}`}>
1619
- {
1620
- !this.state.isPDF ? <div onClick={this.enlargeClick.bind(this, 'isLangVideo2')}>
1745
+ <div onClick={this.enlargeClick.bind(this, 'isLangVideo2')}>
1621
1746
  <video
1622
1747
  id="video2"
1623
1748
  autoPlay
@@ -1628,147 +1753,146 @@ class Video extends Component {
1628
1753
  <label style={{ display: 'none' }} id="feedId2" type="text" />
1629
1754
  <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="subscribe_volumeView2" width="70" height="70"></canvas>
1630
1755
  </div>
1631
- :
1632
- <div className="video" id="touBoxItem">
1633
- </div>
1634
- }
1635
-
1756
+ </div>
1757
+ <div className={`itemed ${this.state.isBigVideo == 'video3' ? 'item1' : ""}`}
1758
+ onClick={this.enlargeClick.bind(this, 'isLangVideo3')}>
1759
+ <video
1760
+ id="video3"
1761
+ autoPlay
1762
+ muted={true}
1763
+ className="video"
1764
+ />
1765
+ <audio id="audio3" autoPlay />
1766
+ <label style={{ display: 'none' }} id="feedId3" type="text" />
1767
+ <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="subscribe_volumeView3" width="70" height="70"></canvas>
1768
+ </div>
1769
+ <div className={`itemed ${this.state.isBigVideo == 'video4' ? 'item1' : ""}`}
1770
+ onClick={this.enlargeClick.bind(this, 'isLangVideo4')}>
1771
+ <video
1772
+ id="video4"
1773
+ autoPlay
1774
+ muted={true}
1775
+ className="video"
1776
+ />
1777
+ <audio id="audio4" autoPlay />
1778
+ <label style={{ display: 'none' }} id="feedId4" type="text" />
1779
+ <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="subscribe_volumeView4" width="70" height="70"></canvas>
1780
+ </div>
1781
+ <div className={`itemed ${this.state.isBigVideo == 'video5' ? 'item1' : ""}`}
1782
+ onClick={this.enlargeClick.bind(this, 'isLangVideo5')}>
1783
+ <video
1784
+ id="video5"
1785
+ autoPlay
1786
+ muted={true}
1787
+ className="video"
1788
+ />
1789
+ <audio id="audio5" autoPlay />
1790
+ <label style={{ display: 'none' }} id="feedId5" type="text" />
1791
+ <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="subscribe_volumeView5" width="70" height="70"></canvas>
1792
+ </div>
1793
+ <div onClick={this.enlargeClick.bind(this, 'isLangVideo6')} className={`${this.state.isBigVideo == 'video6' ? 'item1' : "itemed"}`}>
1794
+ {/* <div style={{ display: (this.state.isPDF) ? '' : 'none', }} id="touBoxItem">
1795
+ {pdfChildren}
1796
+ </div> */}
1797
+ {/* <div style={this.state.isPDF ? {display: 'none'}: {}}> */}
1798
+ <video
1799
+ id="video6"
1800
+ autoPlay
1801
+ muted={true}
1802
+ className="video"
1803
+ />
1804
+ <audio id="audio6" autoPlay />
1805
+ <label style={{ display: 'none' }} id="feedId6" type="text" />
1806
+ <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="subscribe_volumeView6" width="70" height="70"></canvas>
1807
+ {/* </div> */}
1636
1808
 
1809
+ </div>
1637
1810
  </div>
1638
- <div className={`itemed ${this.state.isBigVideo == 'video3' ? 'item1' : ""}`}
1639
- onClick={this.enlargeClick.bind(this, 'isLangVideo3')}>
1640
- <video
1641
- id="video3"
1642
- autoPlay
1643
- muted={true}
1644
- className="video"
1645
- />
1646
- <audio id="audio3" autoPlay />
1647
- <label style={{ display: 'none' }} id="feedId3" type="text" />
1648
- <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="subscribe_volumeView3" width="70" height="70"></canvas>
1649
- </div>
1650
- <div className={`itemed ${this.state.isBigVideo == 'video4' ? 'item1' : ""}`}
1651
- onClick={this.enlargeClick.bind(this, 'isLangVideo4')}>
1652
- <video
1653
- id="video4"
1654
- autoPlay
1655
- muted={true}
1656
- className="video"
1657
- />
1658
- <audio id="audio4" autoPlay />
1659
- <label style={{ display: 'none' }} id="feedId4" type="text" />
1660
- <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="subscribe_volumeView4" width="70" height="70"></canvas>
1661
- </div>
1662
- <div className={`itemed ${this.state.isBigVideo == 'video5' ? 'item1' : ""}`}
1663
- onClick={this.enlargeClick.bind(this, 'isLangVideo5')}>
1664
- <video
1665
- id="video5"
1666
- autoPlay
1667
- muted={true}
1668
- className="video"
1669
- />
1670
- <audio id="audio5" autoPlay />
1671
- <label style={{ display: 'none' }} id="feedId5" type="text" />
1672
- <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="subscribe_volumeView5" width="70" height="70"></canvas>
1673
- </div>
1674
- <div className={`itemed ${this.state.isBigVideo == 'video6' ? 'item1' : ""}`}
1675
- onClick={this.enlargeClick.bind(this, 'isLangVideo6')}>
1676
- <video
1677
- id="video6"
1678
- autoPlay
1679
- muted={true}
1680
- className="video"
1681
- />
1682
- <audio id="audio6" autoPlay />
1683
- <label style={{ display: 'none' }} id="feedId6" type="text" />
1684
- <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="subscribe_volumeView6" width="70" height="70"></canvas>
1685
- </div>
1686
- </div>
1687
1811
 
1688
- </div>
1689
- <Foot
1690
- img={this.state.voiceImg}
1691
- screenName={this.state.screenName}
1692
- suspendName={this.state.suspendName}
1693
- cameraImg={this.state.cameraImg}
1694
- customerList={this.state.customerList}
1695
- suspend={this.suspend}
1696
- voice={this.voice}
1697
- cameraClick={this.cameraClick}
1698
- sharedScreen={this.sharedScreen}
1699
- endSession={this.endSession}
1700
- facialRecognition={this.facialRecognition}
1701
- pictureInPicture={this.pictureInPicture}
1702
- transcribingClick={this.transcribingClick}
1703
- invitationClick={this.invitationClick}
1704
- customerFaceClick={this.customerFaceClick}
1705
- ocrClick={this.ocrClick}
1706
- ></Foot>
1707
- <Modal cancelText="取消" okText="确定" visible={this.state.isModalVisible} onOk={this.handleOk}
1708
- onCancel={this.handleCancel}>
1709
- {
1710
- this.state.isSuspend && <span>确定是否恢复会话?</span>
1711
- }
1712
- {
1713
- !this.state.isSuspend && <span>确定是否暂停会话?</span>
1714
- }
1715
- </Modal>
1716
- <Modal cancelText="取消" okText="确定" visible={this.state.isModalVisibleEnd} onOk={this.handleOkEnd}
1717
- onCancel={this.handleCancelEnd}>
1718
- <span>确定是否结束会话?</span>
1719
- </Modal>
1720
- <Modal title={this.state.titleModal} cancelText="取消" okText="确定" visible={this.state.isModalVisibleFacial}
1721
- onOk={this.handleOkFacial} onCancel={this.handleCancelFacial}>
1722
- <div className="faceBody">
1723
- <img className="faceImg" src={this.state.facialImg} alt=""></img>
1724
1812
  </div>
1813
+ <Foot
1814
+ img={this.state.voiceImg}
1815
+ screenName={this.state.screenName}
1816
+ suspendName={this.state.suspendName}
1817
+ cameraImg={this.state.cameraImg}
1818
+ customerList={this.state.customerList}
1819
+ suspend={this.suspend}
1820
+ voice={this.voice}
1821
+ cameraClick={this.cameraClick}
1822
+ sharedScreen={this.sharedScreen}
1823
+ endSession={this.endSession}
1824
+ facialRecognition={this.facialRecognition}
1825
+ pictureInPicture={this.pictureInPicture}
1826
+ transcribingClick={this.transcribingClick}
1827
+ invitationClick={this.invitationClick}
1828
+ customerFaceClick={this.customerFaceClick}
1829
+ ocrClick={this.ocrClick}
1830
+ switchExternal={this.switchExternal}
1831
+ ></Foot>
1832
+ <Modal cancelText="取消" okText="确定" visible={this.state.isModalVisible} onOk={this.handleOk}
1833
+ onCancel={this.handleCancel}>
1834
+ {
1835
+ this.state.isSuspend && <span>确定是否恢复会话?</span>
1836
+ }
1837
+ {
1838
+ !this.state.isSuspend && <span>确定是否暂停会话?</span>
1839
+ }
1840
+ </Modal>
1841
+ <Modal cancelText="取消" okText="确定" visible={this.state.isModalVisibleEnd} onOk={this.handleOkEnd}
1842
+ onCancel={this.handleCancelEnd}>
1843
+ <span>确定是否结束会话?</span>
1844
+ </Modal>
1845
+ <Modal title={this.state.titleModal} cancelText="取消" okText="确定" visible={this.state.isModalVisibleFacial}
1846
+ onOk={this.handleOkFacial} onCancel={this.handleCancelFacial}>
1847
+ <div className="faceBody">
1848
+ <img className="faceImg" src={this.state.facialImg} alt=""></img>
1849
+ </div>
1725
1850
 
1726
- </Modal>
1727
- <Modal title="新增预约" visible={this.state.isModalVisibleInvitation} footer={[
1728
- <Button type="primary" danger onClick={this.handleOkInvitation}>发送</Button>,
1729
- <Button onClick={this.handleCancelInvitation}>取消</Button>
1730
- ]}>
1731
- <div>
1732
- <div>输入员工号:</div>
1733
- <div className="invitationDiv">
1734
- <input className="inputClick" placeholder="请输入员工号" value={this.state.employeeNumber} onChange={e => this.handleChange(e)}></input>
1735
- <span className="invitationSpan" onClick={this.queryStaff}>查 询</span>
1851
+ </Modal>
1852
+ <Modal title="新增预约" visible={this.state.isModalVisibleInvitation} footer={[
1853
+ <Button type="primary" danger onClick={this.handleOkInvitation}>发送</Button>,
1854
+ <Button onClick={this.handleCancelInvitation}>取消</Button>
1855
+ ]}>
1856
+ <div>
1857
+ <div>输入员工号:</div>
1858
+ <div className="invitationDiv">
1859
+ <input className="inputClick" placeholder="请输入员工号" value={this.state.employeeNumber} onChange={e => this.handleChange(e)}></input>
1860
+ <span className="invitationSpan" onClick={this.queryStaff}>查 询</span>
1861
+ </div>
1862
+ <div className="invitationDiv">
1863
+ <input className="inputClick" readonly value={this.state.employeeName}></input>
1864
+ </div>
1736
1865
  </div>
1737
- <div className="invitationDiv">
1738
- <input className="inputClick" readonly value={this.state.employeeName}></input>
1866
+ </Modal>
1867
+ <Modal title="签字白板" closable={false} visible={this.state.isModalVisibleSign} footer={
1868
+ [
1869
+ <Button type="primary" danger onClick={this.handleOkSign}>确定</Button>
1870
+ ]
1871
+ }>
1872
+ <div className="content">
1873
+ <CanvasDraw
1874
+ ref={this.signCanvas}
1875
+ brushColor="#000"
1876
+ brushRadius={3}
1877
+ lazyRadius={2}
1878
+ canvasWidth="100%"
1879
+ canvasHeight="100%"
1880
+ hideGrid={true}
1881
+ ></CanvasDraw>
1739
1882
  </div>
1740
- </div>
1741
- </Modal>
1742
- <Modal title="签字白板" closable={false} visible={this.state.isModalVisibleSign} footer={
1743
- [
1744
- <Button type="primary" danger onClick={this.handleOkSign}>确定</Button>
1745
- ]
1746
- }>
1747
- <div className="content">
1748
- <CanvasDraw
1749
- ref={this.signCanvas}
1750
- brushColor="#000"
1751
- brushRadius={3}
1752
- lazyRadius={2}
1753
- canvasWidth="100%"
1754
- canvasHeight="100%"
1755
- hideGrid={true}
1756
- ></CanvasDraw>
1757
- </div>
1758
- </Modal>
1759
- <video className="mixedvideo" id="mixedvideo" autoPlay muted={true} width="0" height="0"
1760
- webkit-playsinline="true" playsInline={true} x5-playsinline="x5-playsinline"
1761
- x-webkit-airplay="true"></video>
1762
- </Spin>
1763
- </div>
1764
-
1765
- );
1883
+ </Modal>
1884
+ <video className="mixedvideo" id="mixedvideo" autoPlay muted={true} width="0" height="0"
1885
+ webkit-playsinline="true" playsInline={true} x5-playsinline="x5-playsinline"
1886
+ x-webkit-airplay="true"></video>
1887
+ </Spin>
1888
+ </div>);
1766
1889
  }
1767
1890
  }
1768
1891
  Video.defaultProps = {
1769
1892
  tellerAccount: 't001',
1770
1893
  businessNumber: '123',
1771
1894
  callbackUrl: 'http://47.102.126.132:8720/hsbc/callback',
1772
-
1895
+ roomServerUrl: 'wss://mrtc.mpaas.cn-hangzhou.aliyuncs.com/ws',
1896
+ resourcePath: 'https://counter-web.leimondata.cn:7199',
1773
1897
  }
1774
1898
  export default Video