react_hsbc_teller 0.3.1 → 0.3.5

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react_hsbc_teller",
3
- "version": "0.3.1",
3
+ "version": "0.3.5",
4
4
  "description": "React",
5
5
  "private": false,
6
6
  "main": "lib/hsbc.js",
@@ -3,10 +3,6 @@ import './foot.less'
3
3
  import Popover from "antd/lib/popover";
4
4
  import 'antd/lib/popover/style'
5
5
  export default class foot extends Component {
6
- state = {
7
- clicked: false,
8
- clickedOcr: false
9
- }
10
6
  voice = () => {
11
7
  this.props.voice()
12
8
  }
@@ -26,15 +22,9 @@ export default class foot extends Component {
26
22
  this.props.endSession()
27
23
  }
28
24
  facialRecognition=()=>{
29
- this.setState({
30
- clicked: true
31
- })
32
25
  this.props.facialRecognition()
33
26
  }
34
27
  ocrClick=()=>{
35
- this.setState({
36
- clickedOcr: true
37
- })
38
28
  this.props.ocrClick()
39
29
  }
40
30
  pictureInPicture=()=>{
@@ -44,17 +34,21 @@ export default class foot extends Component {
44
34
  this.props.invitationClick()
45
35
  }
46
36
  customerFaceClick=(item)=>{
47
- this.setState({
48
- clicked: false,
49
- clickedOcr: false
50
- })
51
37
  this.props.customerFaceClick(item)
52
38
  }
53
39
  switchExternal=()=>{
54
40
  this.props.switchExternal()
55
41
  }
42
+ facialHandleVisibleChange = visible => {
43
+ console.log(visible)
44
+ this.props.facialHandleVisibleChange(visible)
45
+ };
46
+ ocrHandleVisibleChange = visible => {
47
+ console.log(visible)
48
+ this.props.ocrHandleVisibleChange(visible)
49
+ };
56
50
  render() {
57
- const {isTranscribing,img,cameraImg,screenName,suspendName,customerList} = this.props
51
+ const {clickedOcr,clickedFacial,isTranscribing,img,cameraImg,screenName,suspendName,customerList} = this.props
58
52
  const content = (
59
53
  <div>
60
54
  {customerList.map((item)=>{
@@ -111,7 +105,7 @@ export default class foot extends Component {
111
105
  {suspendName}
112
106
  </div>
113
107
  </div> */}
114
- <Popover content={content} trigger="click" visible={this.state.clicked}>
108
+ <Popover content={content} trigger="click" visible={clickedFacial} onVisibleChange={this.facialHandleVisibleChange}>
115
109
  <div className="one" onClick={this.facialRecognition.bind(this)}>
116
110
  <img className="imgClass" src={require("../../assets/img/Face_recognition.png").default} alt="" />
117
111
  <div className="text">
@@ -126,7 +120,7 @@ export default class foot extends Component {
126
120
  邀请
127
121
  </div>
128
122
  </div>
129
- <Popover content={content} trigger="click" visible={this.state.clickedOcr}>
123
+ <Popover content={content} trigger="click" visible={clickedOcr} onVisibleChange={this.ocrHandleVisibleChange}>
130
124
  <div className="one" onClick={this.ocrClick.bind(this)}>
131
125
  <img className="imgClass" src={require("../../assets/img/icon_ocr.png").default} alt="" />
132
126
  <div className="text">
@@ -1,11 +1,11 @@
1
1
  .foot{
2
2
  background: #fff;
3
- height: 80px;
3
+ height: 78px;
4
4
  display: inline-flex;
5
5
  width: 100%;
6
- position: absolute;
7
- bottom: 0;
8
- left: 0;
6
+ // position: absolute;
7
+ // bottom: 0;
8
+ // left: 0;
9
9
  }
10
10
  .total{
11
11
  display: inline-flex;
@@ -69,6 +69,8 @@ class Video extends Component {
69
69
  sessionId: this.props.sessionId,
70
70
  imRoomId: this.props.imRoomId,
71
71
  isPictureInPicture: false,
72
+ clickedFacial: false,
73
+ clickedOcr: false
72
74
  };
73
75
  // eslint-disable-next-line no-undef
74
76
  test_controller = '';
@@ -324,7 +326,7 @@ class Video extends Component {
324
326
  }
325
327
  }
326
328
  // 获取人员客户列表
327
- selectCustomer = () => {
329
+ selectCustomer = (val) => {
328
330
  const list = []
329
331
  if (document.getElementById('video1').name) {
330
332
  console.log(this.seeList(this.state.roomCustomerList, 'feedId', document.getElementById("feedId1").innerText))
@@ -380,24 +382,41 @@ class Video extends Component {
380
382
  name: '客户6'
381
383
  })
382
384
  }
385
+ if(list.length > 0) {
386
+ if(val == 'ocr') {
387
+ this.setState({
388
+ clickedOcr: true
389
+ })
390
+ } else if(val == 'facial'){
391
+ this.setState({
392
+ clickedFacial: true
393
+ })
394
+ }
395
+ } else {
396
+ message.success('当前暂无客户')
397
+ }
383
398
  this.setState({
384
399
  customerList: list
385
400
  })
386
401
  }
387
402
  // 人脸识别
388
403
  facialRecognition = () => {
404
+ if (this.isFileSuccuse()) {
389
405
  this.setState({
390
406
  faceCustomerType: 1,
391
407
  titleModal: '人脸识别'
392
408
  })
393
- this.selectCustomer()
409
+ this.selectCustomer('facial')
410
+ }
394
411
  };
395
412
  ocrClick = () => {
413
+ if (this.isFileSuccuse()) {
396
414
  this.setState({
397
415
  faceCustomerType: 2,
398
416
  titleModal: 'OCR识别'
399
417
  })
400
- this.selectCustomer()
418
+ this.selectCustomer('ocr')
419
+ }
401
420
  };
402
421
  endSessionValue = () => {
403
422
  this.test_controller.LeaveRoom()
@@ -727,6 +746,17 @@ class Video extends Component {
727
746
  // 发布媒体流成功
728
747
  this.test_controller.OnPublishSucc = (sid) => {
729
748
  console.log('发布媒体流成功', sid)
749
+ if(sid == document.getElementById('video10').name) {
750
+ callNimIM('sendCustomCmdMsg', {
751
+ customId: this.state.imRoomId,
752
+ content: JSON.stringify({
753
+ 'typeId': 2030,
754
+ 'sessionId': this.state.sessionId,
755
+ 'sharedScreen': 1,
756
+ 'tellerId': this.props.tellerAccount
757
+ })
758
+ });
759
+ }
730
760
  };
731
761
  // 发布媒体流失败
732
762
  this.test_controller.OnPublishFailed = (sid, err_code, err_msg) => {
@@ -778,7 +808,18 @@ class Video extends Component {
778
808
  };
779
809
  // 取消发布成功
780
810
  this.test_controller.OnUnPublishSucc = (sid) => {
781
- console.log('取消发布成功', sid)
811
+ console.log('取消发布成功', sid,document.getElementById('publish_video1').name)
812
+ if(sid != document.getElementById('publish_video1').name) {
813
+ callNimIM('sendCustomCmdMsg', {
814
+ customId: this.state.imRoomId,
815
+ content: JSON.stringify({
816
+ 'typeId': 2030,
817
+ 'sessionId': this.state.sessionId,
818
+ 'sharedScreen': 0,
819
+ 'tellerId': this.props.tellerAccount
820
+ })
821
+ })
822
+ }
782
823
  };
783
824
  // 取消订阅媒体流成功
784
825
  this.test_controller.OnUnSubscribeSucc = (sid) => {
@@ -965,36 +1006,6 @@ class Video extends Component {
965
1006
  // 切流成功通知
966
1007
  this.test_controller.OnChangeMediaStreamSuccess = (sid) => {
967
1008
  console.log('切流成功通知', sid);
968
- if (this.state.publishDevic == 2) {
969
- // 打开共享
970
- callNimIM('sendCustomCmdMsg', {
971
- customId: this.state.imRoomId,
972
- content: JSON.stringify({
973
- 'typeId': 2030,
974
- 'sessionId': this.state.sessionId,
975
- 'sharedScreen': 1,
976
- 'tellerId': this.props.tellerAccount
977
- })
978
- });
979
- this.setState({
980
- isSharedScreen: true,
981
- screenName: '取消共享'
982
- });
983
- } else {
984
- this.setState({
985
- isSharedScreen: false,
986
- screenName: '投屏'
987
- });
988
- callNimIM('sendCustomCmdMsg', {
989
- customId: this.state.imRoomId,
990
- content: JSON.stringify({
991
- 'typeId': 2030,
992
- 'sessionId': this.state.sessionId,
993
- 'sharedScreen': 0,
994
- 'tellerId': this.props.tellerAccount
995
- })
996
- })
997
- }
998
1009
  };
999
1010
  // 切流失败通知
1000
1011
  this.test_controller.OnChangeMediaStreamFailed = (
@@ -1053,7 +1064,7 @@ class Video extends Component {
1053
1064
  let outcanvas = document.createElement("canvas");
1054
1065
  outcanvas.width = canvas.width;
1055
1066
  outcanvas.height = canvas.height;
1056
- ctx.strokeStyle = "#db0011";
1067
+ ctx.strokeStyle = this.props.voiceColor;
1057
1068
  ctx.lineWidth = 2;
1058
1069
  ctx.clearRect(0, 0, canvas.width, canvas.height); //清理画布
1059
1070
  let dataArray = new Uint8Array(analyser.frequencyBinCount);
@@ -1145,7 +1156,7 @@ class Video extends Component {
1145
1156
  let result = await API.getRoomStatus({
1146
1157
  sessionId: data.sessionId
1147
1158
  });
1148
- if (result.code == 200 && result.data.roomStatu == 1) {
1159
+ if (result.code == 200 && result.data.roomStatus == 1) {
1149
1160
  this.addToScript()
1150
1161
  } else {
1151
1162
  message.success('当前房间状态异常')
@@ -1293,11 +1304,8 @@ class Video extends Component {
1293
1304
  }
1294
1305
  };
1295
1306
  isFileSuccuse = () => {
1296
- if (!this.state.sessionId) {
1297
- return false
1298
- } else if (this.state.isSuspend) {
1299
- return false
1300
- } else if (!this.state.isCustomer) {
1307
+ if (!this.state.sessionId || this.state.isSuspend || !this.state.isCustomer) {
1308
+ message.success(this.props.prohibitPrompt)
1301
1309
  return false
1302
1310
  } else {
1303
1311
  return true
@@ -1398,7 +1406,7 @@ class Video extends Component {
1398
1406
  publish_config.video_profile_type = 5
1399
1407
  publish_config.publish_video_id = 'video10'
1400
1408
  publish_config.publish_streamId_id = 'subscribe_streamId10'
1401
- publish_config.publish_tag = ''
1409
+ publish_config.publish_tag = 'projectionWhiteboard'
1402
1410
  this.test_controller.Publish(publish_config)
1403
1411
  }
1404
1412
 
@@ -1599,6 +1607,8 @@ class Video extends Component {
1599
1607
  }
1600
1608
  console.log(sid)
1601
1609
  this.setState({
1610
+ clickedFacial: false,
1611
+ clickedOcr: false,
1602
1612
  faceCustomerUid: item.customId,
1603
1613
  isModalVisibleFacial: true,
1604
1614
  facialImg: this.test_controller.TakePicture(1, undefined, undefined, sid, 'png')
@@ -1678,7 +1688,7 @@ class Video extends Component {
1678
1688
  publish_config.part_of_screen_id = 'touBoxItem';
1679
1689
  publish_config.publish_video_id = 'video10'
1680
1690
  publish_config.publish_streamId_id = 'subscribe_streamId10'
1681
- publish_config.publish_tag = ''
1691
+ publish_config.publish_tag = 'projectionWhiteboard'
1682
1692
  this.test_controller.Publish(publish_config)
1683
1693
  }
1684
1694
  } else{
@@ -1703,6 +1713,20 @@ class Video extends Component {
1703
1713
  })
1704
1714
  }
1705
1715
  }
1716
+ facialHandleVisibleChange=(value)=>{
1717
+ if(!value) {
1718
+ this.setState({
1719
+ clickedFacial: false
1720
+ })
1721
+ }
1722
+ }
1723
+ ocrHandleVisibleChange=(value)=>{
1724
+ if(!value) {
1725
+ this.setState({
1726
+ clickedOcr: false
1727
+ })
1728
+ }
1729
+ }
1706
1730
  render() {
1707
1731
  var pdfChildren
1708
1732
  if (this.props.children) {
@@ -1713,7 +1737,7 @@ class Video extends Component {
1713
1737
  <Spin spinning={this.state.loading} tip="视频初始化中...">
1714
1738
  <Header></Header>
1715
1739
  <div className="health">
1716
- <div className="projection" style={{ display: (this.state.isCustomer == 'noVideo') ? '' : 'none', }}>
1740
+ <div className="projection" style={{ display: (this.state.isCustomer) ? '' : 'none', }}>
1717
1741
  <div className="button">
1718
1742
  <div className={`${this.state.isSelect == 'video' ? 'selectSee' : "noSelest"}`} onClick={this.switchSelect.bind(this)}>视频画面</div>
1719
1743
  <div className={`${this.state.isSelect == 'noVideo' ? 'selectSee' : "noSelest"}`} onClick={this.switchSelect.bind(this)}>投屏白板</div>
@@ -1741,14 +1765,14 @@ class Video extends Component {
1741
1765
  <div
1742
1766
  className={`itemed ${this.state.isBigVideo == 'video1' ? 'item1' : ""}`}
1743
1767
  // className="itemed item1"
1744
- style={{ position: "relative" }}
1768
+ style={{ position: "relative",'margin-right': '5px', }}
1745
1769
  onClick={this.enlargeClick.bind(this, 'isLangVideo1')}
1746
1770
  >
1747
1771
  {
1748
1772
  this.state.customAudioed && <img
1749
1773
  alt=""
1750
1774
  src={require("../../assets/img/yingpin.png").default}
1751
- style={{ width: "100%", height: "100%" }}
1775
+ style={{ width: "100%", height: "100%",}}
1752
1776
  ></img>
1753
1777
  }
1754
1778
  <div className="video1Div" style={{ display: (!this.state.customAudioed) ? '' : 'none', }}>
@@ -1760,7 +1784,7 @@ class Video extends Component {
1760
1784
  />
1761
1785
  <audio id="audio1" autoPlay />
1762
1786
  <label style={{ display: 'none' }} id="feedId1" type="text" />
1763
- <div style={{ display: (this.state.isCustomer) ? '' : 'none', }} className='customerTitle'>客户</div>
1787
+ <div style={{ display: (this.state.isCustomer) ? '' : 'none', background: this.props.titleBackground,color: this.props.titleColor }} className='customerTitle'>客户</div>
1764
1788
  <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView1" width="40" height="70"></canvas>
1765
1789
  </div>
1766
1790
  </div>
@@ -1800,14 +1824,12 @@ class Video extends Component {
1800
1824
  />
1801
1825
  <audio id="audio1" autoPlay />
1802
1826
  <label style={{ display: 'none' }} id="publish_streamId1" type="text" />
1803
- <div style={{ display: (this.state.isCustomer) ? '' : 'none', }} className='tellerTitle'>坐席</div>
1827
+ <div style={{ display: (this.state.isCustomer) ? '' : 'none', background: this.props.titleBackground,color: this.props.titleColor}} className='tellerTitle'>坐席</div>
1804
1828
  <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="publish_volumeView" width="40" height="70"></canvas>
1805
1829
  </div>
1806
1830
 
1807
1831
  </div>
1808
- <div className={`itemed ${this.state.isBigVideo == 'video2' ? 'item1' : ""}`}>
1809
-
1810
- <div onClick={this.enlargeClick.bind(this, 'isLangVideo2')}>
1832
+ <div className={`itemed ${this.state.isBigVideo == 'video2' ? 'item1' : ""}`} style={{'margin-top': '5px', }} onClick={this.enlargeClick.bind(this, 'isLangVideo2')}>
1811
1833
  <video
1812
1834
  id="video2"
1813
1835
  autoPlay
@@ -1818,9 +1840,9 @@ class Video extends Component {
1818
1840
  <label style={{ display: 'none' }} id="feedId2" type="text" />
1819
1841
  {/* <div className='customerTitle'>客户</div> */}
1820
1842
  <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView2" width="40" height="70"></canvas>
1821
- </div>
1822
1843
  </div>
1823
1844
  <div className={`itemed ${this.state.isBigVideo == 'video3' ? 'item1' : ""}`}
1845
+ style={{'margin-top': '5px', }}
1824
1846
  onClick={this.enlargeClick.bind(this, 'isLangVideo3')}>
1825
1847
  <video
1826
1848
  id="video3"
@@ -1834,6 +1856,7 @@ class Video extends Component {
1834
1856
  <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView3" width="40" height="70"></canvas>
1835
1857
  </div>
1836
1858
  <div className={`itemed ${this.state.isBigVideo == 'video4' ? 'item1' : ""}`}
1859
+ style={{'margin-right': '5px', }}
1837
1860
  onClick={this.enlargeClick.bind(this, 'isLangVideo4')}>
1838
1861
  <video
1839
1862
  id="video4"
@@ -1847,6 +1870,7 @@ class Video extends Component {
1847
1870
  <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView4" width="40" height="70"></canvas>
1848
1871
  </div>
1849
1872
  <div className={`itemed ${this.state.isBigVideo == 'video5' ? 'item1' : ""}`}
1873
+ style={{'margin-top': '5px', }}
1850
1874
  onClick={this.enlargeClick.bind(this, 'isLangVideo5')}>
1851
1875
  <video
1852
1876
  id="video5"
@@ -1859,11 +1883,11 @@ class Video extends Component {
1859
1883
  {/* <div style={{ display: (this.state.isCustomer) ? '' : 'none', }} className='customerTitle'>客户</div> */}
1860
1884
  <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView5" width="40" height="70"></canvas>
1861
1885
  </div>
1862
- <div onClick={this.enlargeClick.bind(this, 'isLangVideo6')} className={`${this.state.isBigVideo == 'video6' ? 'item1' : "itemed"}`}>
1886
+ <div onClick={this.enlargeClick.bind(this, 'isLangVideo6')} style={{'margin-top': '5px', }} className={`${this.state.isBigVideo == 'video6' ? 'item1' : "itemed"}`}>
1863
1887
  <video
1864
1888
  id="video6"
1865
1889
  autoPlay
1866
- muted={true}
1890
+ muted={true}
1867
1891
  className="video"
1868
1892
  />
1869
1893
  <audio id="audio6" autoPlay />
@@ -1881,7 +1905,11 @@ class Video extends Component {
1881
1905
  suspendName={this.state.suspendName}
1882
1906
  cameraImg={this.state.cameraImg}
1883
1907
  customerList={this.state.customerList}
1908
+ clickedOcr={this.state.clickedOcr}
1909
+ clickedFacial={this.state.clickedFacial}
1884
1910
  suspend={this.suspend}
1911
+ facialHandleVisibleChange={this.facialHandleVisibleChange}
1912
+ ocrHandleVisibleChange={this.ocrHandleVisibleChange}
1885
1913
  voice={this.voice}
1886
1914
  cameraClick={this.cameraClick}
1887
1915
  sharedScreen={this.sharedScreen}
@@ -1959,5 +1987,9 @@ Video.defaultProps = {
1959
1987
  callbackUrl: 'http://47.102.126.132:8720/hsbc/callback',
1960
1988
  roomServerUrl: 'wss://mrtc.mpaas.cn-hangzhou.aliyuncs.com/ws',
1961
1989
  resourcePath: 'https://counter-web.leimondata.cn:7199',
1990
+ prohibitPrompt: '当前无客户',
1991
+ voiceColor: '#db0011',
1992
+ titleBackground: 'rgba(219, 0, 17, 0.1)',
1993
+ titleColor: '#DB0011'
1962
1994
  }
1963
1995
  export default Video
@@ -79,8 +79,8 @@
79
79
  height: 100%;
80
80
  }
81
81
  .health{
82
- margin: 20px;
83
- height: ~"calc(100vh - 60px)";
82
+ margin: 20px 20px 0 20px;
83
+ height: ~"calc(100vh - 130px)";
84
84
  }
85
85
  .all{
86
86
  height: 100%;
@@ -144,7 +144,7 @@
144
144
  }
145
145
  .projection{
146
146
  width: 80%;
147
- height: 88%;
147
+ height: ~"calc(100vh - 130px)";
148
148
  position: absolute;
149
149
  z-index: 1;
150
150
  // background: #fff;
@@ -188,9 +188,9 @@ border-radius: 0px 0px 2px 2px;
188
188
  width: 80px;
189
189
  line-height: 30px;
190
190
  height: 30px;
191
- background: rgba(219, 0, 17, 0.1);
191
+ // background: rgba(219, 0, 17, 0.1);
192
192
  border-radius: 4px 0px 2px 0px;
193
- color: #DB0011;
193
+ // color: #DB0011;
194
194
  font-size: 14px;
195
195
  }
196
196
  .tellerTitle{
@@ -200,10 +200,9 @@ border-radius: 0px 0px 2px 2px;
200
200
  width: 80px;
201
201
  line-height: 30px;
202
202
  height: 30px;
203
- background: rgba(219, 0, 17, 0.1);
203
+ // background: rgba(219, 0, 17, 0.1);
204
204
  border-radius: 4px 0px 2px 0px;
205
- transform: rotateY(
206
- 180deg);
207
- color: #DB0011;
205
+ transform: rotateY(180deg);
206
+ // color: #DB0011;
208
207
  font-size: 14px;
209
208
  }