react_hsbc_teller 0.2.8 → 0.3.2

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.2.8",
3
+ "version": "0.3.2",
4
4
  "description": "React",
5
5
  "private": false,
6
6
  "main": "lib/hsbc.js",
@@ -105,12 +105,12 @@ export default class foot extends Component {
105
105
  {screenName}
106
106
  </div>
107
107
  </div>
108
- <div className="one" onClick={this.suspend.bind(this)}>
108
+ {/* <div className="one" onClick={this.suspend.bind(this)}>
109
109
  <img className="imgClass" src={require("../../assets/img/icon_suspend.png").default} alt="" />
110
110
  <div className="text">
111
111
  {suspendName}
112
112
  </div>
113
- </div>
113
+ </div> */}
114
114
  <Popover content={content} trigger="click" visible={this.state.clicked}>
115
115
  <div className="one" onClick={this.facialRecognition.bind(this)}>
116
116
  <img className="imgClass" src={require("../../assets/img/Face_recognition.png").default} alt="" />
@@ -5,6 +5,7 @@ display: inline-flex;
5
5
  width: 100%;
6
6
  position: absolute;
7
7
  bottom: 0;
8
+ left: 0;
8
9
  }
9
10
  .total{
10
11
  display: inline-flex;
@@ -25,6 +25,7 @@ const LEAVE_TYPE = {
25
25
  TELLER_EXIT: '1', // 坐席退出
26
26
  ROOM_DESTROYED: '-1', // 房间异常
27
27
  }
28
+ let pictureInPictureVideo = ''
28
29
  @injectIntl
29
30
  class Video extends Component {
30
31
  signCanvas = React.createRef();
@@ -67,6 +68,7 @@ class Video extends Component {
67
68
  rtoken: this.props.mtoken,
68
69
  sessionId: this.props.sessionId,
69
70
  imRoomId: this.props.imRoomId,
71
+ isPictureInPicture: false,
70
72
  };
71
73
  // eslint-disable-next-line no-undef
72
74
  test_controller = '';
@@ -92,13 +94,20 @@ class Video extends Component {
92
94
  joinRoom((this.props.tellerAccount + '@' + JSON.parse(window.sessionStorage.getItem('sigData')).hostname), this.state.imRoomId)
93
95
  this.props.createRoomCallback({
94
96
  type: 1,
95
- errorManage: ''
97
+ errorManage: '',
98
+ data: {
99
+ mtoken: this.state.rtoken,
100
+ imRoomId: result.imRoomId,
101
+ sessionId: result.sessionId,
102
+ roomId: this.state.channelId
103
+ }
96
104
  })
97
105
  } catch (err) {
98
106
  console.error(err);
99
107
  this.props.createRoomCallback({
100
108
  type: 2,
101
- errorManage: '保存房间信息失败'
109
+ errorManage: '保存房间信息失败',
110
+ data: {}
102
111
  })
103
112
  }
104
113
  };
@@ -427,27 +436,12 @@ class Video extends Component {
427
436
  };
428
437
  // 画中画
429
438
  pictureInPicture = () => {
430
- // const publish_config = {};
431
- // publish_config.media_type = 1;
432
- // publish_config.publish_device = 4;
433
- // publish_config.need_volume_analyser = true;
434
- // publish_config.video_profile_type = 3;
435
- // publish_config.part_of_screen_id = 'touBoxItem';
436
- // publish_config.publish_video_id = 'video3';
437
- // publish_config.publish_streamId_id = 'subscribe_streamId3';
438
- // // publish_config.publish_tag = 'sharedScreen'
439
- // this.test_controller.Publish(publish_config);
440
- // callNimIM('sendCustomCmdMsg', {
441
- // customId: this.state.imRoomId,
442
- // content: JSON.stringify({
443
- // 'typeId': 2030,
444
- // 'sessionId': this.state.sessionId,
445
- // 'sharedScreen': 1,
446
- // 'tellerId': this.props.tellerAccount
447
- // })
448
- // });
439
+ let interval
449
440
  if (this.isFileSuccuse()) {
450
- const list = []
441
+ if(this.state.isPictureInPicture){
442
+ document.exitPictureInPicture()
443
+ } else {
444
+ const list = []
451
445
  if(document.getElementById('video1').name) {
452
446
  list.push('video1')
453
447
  }
@@ -479,7 +473,7 @@ class Video extends Component {
479
473
  const cobj = canvas.getContext('2d'); // 获取绘图环境
480
474
  canvas.width = width;
481
475
  canvas.height = height;
482
- let interval = setInterval(() => {
476
+ interval = setInterval(() => {
483
477
  cobj.clearRect(0, 0, width, height);
484
478
  for(let i=0;i<list.length;i++){
485
479
 
@@ -494,54 +488,35 @@ class Video extends Component {
494
488
  } else {
495
489
  newVideoHeight = videoHeight * 320 / videoWidth;
496
490
  }
497
- cobj.drawImage(videoDiv, 320 * i, 480 - newVideoHeight, 320, newVideoHeight);
491
+ cobj.drawImage(videoDiv, 320 * i, (480 - newVideoHeight)/2, 320, newVideoHeight);
498
492
  }
499
- // cobj.clearRect(0, 0, width, height);
500
- // let videoId = 'publish_video1';
501
- // let videoDiv = document.getElementById(videoId);
502
- // let videoWidth = videoDiv.videoWidth;
503
- // let videoHeight = videoDiv.videoHeight;
504
- // let newVideoWidth = 320;
505
- // let newVideoHeight = 480;
506
- // if (videoHeight * 320 / videoWidth > 480) {
507
- // newVideoWidth = videoWidth * 480 / videoHeight;
508
- // } else {
509
- // newVideoHeight = videoHeight * 320 / videoWidth;
510
- // }
511
- // cobj.drawImage(videoDiv, 0, 480 - newVideoHeight, newVideoWidth, newVideoHeight);
512
-
513
- // let subscribeVideo = 'video1';
514
- // let subscribeVideoDiv = document.getElementById(subscribeVideo);
515
- // let subscribeVideoDivWidth = subscribeVideoDiv.videoWidth;
516
- // let subscribeVideoDivHeight = subscribeVideoDiv.videoHeight;
517
- // let newVideoWidth1 = 320;
518
- // let newVideoHeight1 = 480;
519
- // if (subscribeVideoDivHeight * 320 / subscribeVideoDivWidth > 480) {
520
- // newVideoWidth1 = subscribeVideoDivWidth * 480 / subscribeVideoDivHeight;
521
- // } else {
522
- // newVideoHeight1 = subscribeVideoDivHeight * 320 / subscribeVideoDivWidth;
523
- // }
524
- // cobj.drawImage(subscribeVideoDiv, 320, 480 - newVideoHeight1, newVideoWidth1, newVideoHeight1);
525
-
526
493
  }, 100);
527
494
  const captureStream = canvas.captureStream();
528
495
  const mix_stream = new MediaStream(captureStream);
529
- let video = document.getElementById('mixedvideo');
530
- video.srcObject = mix_stream;
531
- video.onloadedmetadata = () => {
532
- video.requestPictureInPicture();
496
+ pictureInPictureVideo = document.getElementById('mixedvideo');
497
+ pictureInPictureVideo.srcObject = mix_stream;
498
+ pictureInPictureVideo.onloadedmetadata = () => {
499
+ pictureInPictureVideo.requestPictureInPicture();
533
500
  };
501
+ }
502
+
534
503
 
535
- video.addEventListener('enterpictureinpicture', (event) => {
504
+ pictureInPictureVideo.addEventListener('enterpictureinpicture', (event) => {
536
505
  //可获取画中画窗口的一些数据,如宽高等
537
- video.style.display = 'block';
538
- video.play();
506
+ pictureInPictureVideo.style.display = 'block';
507
+ pictureInPictureVideo.play();
508
+ this.setState({
509
+ isPictureInPicture: true
510
+ })
539
511
  });
540
512
 
541
- video.addEventListener('leavepictureinpicture', (event) => {
542
- video.srcObject = null;
543
- video.style.display = "none";
513
+ pictureInPictureVideo.addEventListener('leavepictureinpicture', (event) => {
514
+ pictureInPictureVideo.srcObject = null;
515
+ pictureInPictureVideo.style.display = "none";
544
516
  clearInterval(interval);
517
+ this.setState({
518
+ isPictureInPicture: false
519
+ })
545
520
  });
546
521
  }
547
522
  };
@@ -549,12 +524,14 @@ class Video extends Component {
549
524
  if (this.state.sessionId) {
550
525
  this.props.joinRoomCallback({
551
526
  type: type,
552
- errorManage: manege
527
+ errorManage: manege,
528
+ data: {}
553
529
  })
554
530
  }else {
555
531
  this.props.createRoomCallback({
556
532
  type: type,
557
- errorManage: manege
533
+ errorManage: manege,
534
+ data: {}
558
535
  })
559
536
  }
560
537
  }
@@ -750,6 +727,17 @@ class Video extends Component {
750
727
  // 发布媒体流成功
751
728
  this.test_controller.OnPublishSucc = (sid) => {
752
729
  console.log('发布媒体流成功', sid)
730
+ if(sid == document.getElementById('video10').name) {
731
+ callNimIM('sendCustomCmdMsg', {
732
+ customId: this.state.imRoomId,
733
+ content: JSON.stringify({
734
+ 'typeId': 2030,
735
+ 'sessionId': this.state.sessionId,
736
+ 'sharedScreen': 1,
737
+ 'tellerId': this.props.tellerAccount
738
+ })
739
+ });
740
+ }
753
741
  };
754
742
  // 发布媒体流失败
755
743
  this.test_controller.OnPublishFailed = (sid, err_code, err_msg) => {
@@ -801,7 +789,18 @@ class Video extends Component {
801
789
  };
802
790
  // 取消发布成功
803
791
  this.test_controller.OnUnPublishSucc = (sid) => {
804
- console.log('取消发布成功', sid)
792
+ console.log('取消发布成功', sid,document.getElementById('publish_video1').name)
793
+ if(sid != document.getElementById('publish_video1').name) {
794
+ callNimIM('sendCustomCmdMsg', {
795
+ customId: this.state.imRoomId,
796
+ content: JSON.stringify({
797
+ 'typeId': 2030,
798
+ 'sessionId': this.state.sessionId,
799
+ 'sharedScreen': 0,
800
+ 'tellerId': this.props.tellerAccount
801
+ })
802
+ })
803
+ }
805
804
  };
806
805
  // 取消订阅媒体流成功
807
806
  this.test_controller.OnUnSubscribeSucc = (sid) => {
@@ -988,36 +987,6 @@ class Video extends Component {
988
987
  // 切流成功通知
989
988
  this.test_controller.OnChangeMediaStreamSuccess = (sid) => {
990
989
  console.log('切流成功通知', sid);
991
- if (this.state.publishDevic == 2) {
992
- // 打开共享
993
- callNimIM('sendCustomCmdMsg', {
994
- customId: this.state.imRoomId,
995
- content: JSON.stringify({
996
- 'typeId': 2030,
997
- 'sessionId': this.state.sessionId,
998
- 'sharedScreen': 1,
999
- 'tellerId': this.props.tellerAccount
1000
- })
1001
- });
1002
- this.setState({
1003
- isSharedScreen: true,
1004
- screenName: '取消共享'
1005
- });
1006
- } else {
1007
- this.setState({
1008
- isSharedScreen: false,
1009
- screenName: '投屏'
1010
- });
1011
- callNimIM('sendCustomCmdMsg', {
1012
- customId: this.state.imRoomId,
1013
- content: JSON.stringify({
1014
- 'typeId': 2030,
1015
- 'sessionId': this.state.sessionId,
1016
- 'sharedScreen': 0,
1017
- 'tellerId': this.props.tellerAccount
1018
- })
1019
- })
1020
- }
1021
990
  };
1022
991
  // 切流失败通知
1023
992
  this.test_controller.OnChangeMediaStreamFailed = (
@@ -1076,14 +1045,14 @@ class Video extends Component {
1076
1045
  let outcanvas = document.createElement("canvas");
1077
1046
  outcanvas.width = canvas.width;
1078
1047
  outcanvas.height = canvas.height;
1079
- ctx.strokeStyle = "#00847F";
1048
+ ctx.strokeStyle = "#db0011";
1080
1049
  ctx.lineWidth = 2;
1081
1050
  ctx.clearRect(0, 0, canvas.width, canvas.height); //清理画布
1082
1051
  let dataArray = new Uint8Array(analyser.frequencyBinCount);
1083
1052
  analyser.getByteFrequencyData(dataArray);
1084
1053
  let step = Math.round(dataArray.length / 60); //采样步长
1085
1054
  for (var i = 0; i < 40; i++) {
1086
- let energy = (dataArray[step * i] / 256.0) * 50;
1055
+ let energy = (dataArray[step * i] / 256.0) * 80;
1087
1056
  for (var j = 0; j < energy; j++) {
1088
1057
  ctx.beginPath();
1089
1058
  ctx.moveTo(20 * i + 2, 200 + 4 * j);
@@ -1104,7 +1073,7 @@ class Video extends Component {
1104
1073
  function draw() {
1105
1074
  ctx.drawImage(outcanvas, 0, 0);
1106
1075
  ctx.save();
1107
- ctx.translate(canvas.width / 2, canvas.height / 2);
1076
+ ctx.translate(canvas.width / 4, canvas.height / 2);
1108
1077
  ctx.rotate(Math.PI);
1109
1078
  ctx.scale(-1, 1);
1110
1079
  ctx.drawImage(outcanvas, -canvas.width / 2, -canvas.height / 2);
@@ -1150,6 +1119,7 @@ class Video extends Component {
1150
1119
  this.setState({
1151
1120
  isCustomer: false,
1152
1121
  isWhiteboard: false,
1122
+ isPictureInPicture: false,
1153
1123
  });
1154
1124
  this.props.onLeaveRoom({
1155
1125
  code: LEAVE_TYPE.TELLER_EXIT,
@@ -1253,7 +1223,7 @@ class Video extends Component {
1253
1223
  }
1254
1224
  componentWillMount() {
1255
1225
  if (this.props.sessionId) {
1256
- thid.getRoomStatus({
1226
+ this.getRoomStatus({
1257
1227
  sessionId: this.props.sessionId
1258
1228
  })
1259
1229
  } else {
@@ -1402,6 +1372,10 @@ class Video extends Component {
1402
1372
 
1403
1373
  screenName: '投屏'
1404
1374
  });
1375
+ console.log(pictureInPictureVideo)
1376
+ if(this.state.isPictureInPicture) {
1377
+ document.exitPictureInPicture()
1378
+ }
1405
1379
  } else {
1406
1380
  if (document.getElementById('video10').name) {
1407
1381
  publish_config.media_type = 1;
@@ -1416,7 +1390,7 @@ class Video extends Component {
1416
1390
  publish_config.video_profile_type = 5
1417
1391
  publish_config.publish_video_id = 'video10'
1418
1392
  publish_config.publish_streamId_id = 'subscribe_streamId10'
1419
- publish_config.publish_tag = ''
1393
+ publish_config.publish_tag = 'projectionWhiteboard'
1420
1394
  this.test_controller.Publish(publish_config)
1421
1395
  }
1422
1396
 
@@ -1433,6 +1407,10 @@ class Video extends Component {
1433
1407
  screenName: '取消共享',
1434
1408
  isPDF: false
1435
1409
  })
1410
+ if(!this.state.isPictureInPicture) {
1411
+ this.pictureInPicture()
1412
+ }
1413
+
1436
1414
  }
1437
1415
  }
1438
1416
  };
@@ -1692,7 +1670,7 @@ class Video extends Component {
1692
1670
  publish_config.part_of_screen_id = 'touBoxItem';
1693
1671
  publish_config.publish_video_id = 'video10'
1694
1672
  publish_config.publish_streamId_id = 'subscribe_streamId10'
1695
- publish_config.publish_tag = ''
1673
+ publish_config.publish_tag = 'projectionWhiteboard'
1696
1674
  this.test_controller.Publish(publish_config)
1697
1675
  }
1698
1676
  } else{
@@ -1727,7 +1705,7 @@ class Video extends Component {
1727
1705
  <Spin spinning={this.state.loading} tip="视频初始化中...">
1728
1706
  <Header></Header>
1729
1707
  <div className="health">
1730
- <div className="projection">
1708
+ <div className="projection" style={{ display: (this.state.isCustomer) ? '' : 'none', }}>
1731
1709
  <div className="button">
1732
1710
  <div className={`${this.state.isSelect == 'video' ? 'selectSee' : "noSelest"}`} onClick={this.switchSelect.bind(this)}>视频画面</div>
1733
1711
  <div className={`${this.state.isSelect == 'noVideo' ? 'selectSee' : "noSelest"}`} onClick={this.switchSelect.bind(this)}>投屏白板</div>
@@ -1774,7 +1752,8 @@ class Video extends Component {
1774
1752
  />
1775
1753
  <audio id="audio1" autoPlay />
1776
1754
  <label style={{ display: 'none' }} id="feedId1" type="text" />
1777
- <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="subscribe_volumeView1" width="20" height="50"></canvas>
1755
+ <div style={{ display: (this.state.isCustomer) ? '' : 'none', }} className='customerTitle'>客户</div>
1756
+ <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView1" width="40" height="70"></canvas>
1778
1757
  </div>
1779
1758
  </div>
1780
1759
  <div
@@ -1813,13 +1792,12 @@ class Video extends Component {
1813
1792
  />
1814
1793
  <audio id="audio1" autoPlay />
1815
1794
  <label style={{ display: 'none' }} id="publish_streamId1" type="text" />
1816
- <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="publish_volumeView" width="20" height="50"></canvas>
1795
+ <div style={{ display: (this.state.isCustomer) ? '' : 'none', }} className='tellerTitle'>坐席</div>
1796
+ <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="publish_volumeView" width="40" height="70"></canvas>
1817
1797
  </div>
1818
1798
 
1819
1799
  </div>
1820
- <div className={`itemed ${this.state.isBigVideo == 'video2' ? 'item1' : ""}`}>
1821
-
1822
- <div onClick={this.enlargeClick.bind(this, 'isLangVideo2')}>
1800
+ <div className={`itemed ${this.state.isBigVideo == 'video2' ? 'item1' : ""}`} onClick={this.enlargeClick.bind(this, 'isLangVideo2')}>
1823
1801
  <video
1824
1802
  id="video2"
1825
1803
  autoPlay
@@ -1828,8 +1806,8 @@ class Video extends Component {
1828
1806
  />
1829
1807
  <audio id="audio2" autoPlay />
1830
1808
  <label style={{ display: 'none' }} id="feedId2" type="text" />
1831
- <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="subscribe_volumeView2" width="20" height="50"></canvas>
1832
- </div>
1809
+ {/* <div className='customerTitle'>客户</div> */}
1810
+ <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView2" width="40" height="70"></canvas>
1833
1811
  </div>
1834
1812
  <div className={`itemed ${this.state.isBigVideo == 'video3' ? 'item1' : ""}`}
1835
1813
  onClick={this.enlargeClick.bind(this, 'isLangVideo3')}>
@@ -1841,7 +1819,8 @@ class Video extends Component {
1841
1819
  />
1842
1820
  <audio id="audio3" autoPlay />
1843
1821
  <label style={{ display: 'none' }} id="feedId3" type="text" />
1844
- <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="subscribe_volumeView3" width="20" height="50"></canvas>
1822
+ {/* <div style={{ display: (this.state.isCustomer) ? '' : 'none', }} className='customerTitle'>客户</div> */}
1823
+ <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView3" width="40" height="70"></canvas>
1845
1824
  </div>
1846
1825
  <div className={`itemed ${this.state.isBigVideo == 'video4' ? 'item1' : ""}`}
1847
1826
  onClick={this.enlargeClick.bind(this, 'isLangVideo4')}>
@@ -1853,7 +1832,8 @@ class Video extends Component {
1853
1832
  />
1854
1833
  <audio id="audio4" autoPlay />
1855
1834
  <label style={{ display: 'none' }} id="feedId4" type="text" />
1856
- <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="subscribe_volumeView4" width="20" height="50"></canvas>
1835
+ {/* <div style={{ display: (this.state.isCustomer) ? '' : 'none', }} className='customerTitle'>客户</div> */}
1836
+ <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView4" width="40" height="70"></canvas>
1857
1837
  </div>
1858
1838
  <div className={`itemed ${this.state.isBigVideo == 'video5' ? 'item1' : ""}`}
1859
1839
  onClick={this.enlargeClick.bind(this, 'isLangVideo5')}>
@@ -1865,13 +1845,10 @@ class Video extends Component {
1865
1845
  />
1866
1846
  <audio id="audio5" autoPlay />
1867
1847
  <label style={{ display: 'none' }} id="feedId5" type="text" />
1868
- <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="subscribe_volumeView5" width="20" height="50"></canvas>
1848
+ {/* <div style={{ display: (this.state.isCustomer) ? '' : 'none', }} className='customerTitle'>客户</div> */}
1849
+ <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView5" width="40" height="70"></canvas>
1869
1850
  </div>
1870
1851
  <div onClick={this.enlargeClick.bind(this, 'isLangVideo6')} className={`${this.state.isBigVideo == 'video6' ? 'item1' : "itemed"}`}>
1871
- {/* <div style={{ display: (this.state.isPDF) ? '' : 'none', }} id="touBoxItem">
1872
- {pdfChildren}
1873
- </div> */}
1874
- {/* <div style={this.state.isPDF ? {display: 'none'}: {}}> */}
1875
1852
  <video
1876
1853
  id="video6"
1877
1854
  autoPlay
@@ -1880,8 +1857,8 @@ class Video extends Component {
1880
1857
  />
1881
1858
  <audio id="audio6" autoPlay />
1882
1859
  <label style={{ display: 'none' }} id="feedId6" type="text" />
1883
- <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClass" id="subscribe_volumeView6" width="20" height="50"></canvas>
1884
- {/* </div> */}
1860
+ {/* <div style={{ display: (this.state.isCustomer) ? '' : 'none', }} className='customerTitle'>客户</div> */}
1861
+ <canvas style={{ display: (this.state.isCustomer) ? '' : 'none', }} className="canvasClassOne" id="subscribe_volumeView6" width="40" height="70"></canvas>
1885
1862
 
1886
1863
  </div>
1887
1864
  </div>
@@ -1958,7 +1935,7 @@ class Video extends Component {
1958
1935
  ></CanvasDraw>
1959
1936
  </div>
1960
1937
  </Modal>
1961
- <video className="mixedvideo" id="mixedvideo" autoPlay muted={true} width="400" height="400"
1938
+ <video className="mixedvideo" id="mixedvideo" autoPlay muted={true} width="0" height="0"
1962
1939
  webkit-playsinline="true" playsInline={true} x5-playsinline="x5-playsinline"
1963
1940
  x-webkit-airplay="true"></video>
1964
1941
  </Spin>
@@ -3,7 +3,7 @@
3
3
  height: 100px
4
4
  }
5
5
  .mixedvideo{
6
- // display: none;
6
+ display: none;
7
7
  position:absolute;
8
8
  object-fit: cover
9
9
  }
@@ -35,6 +35,7 @@
35
35
  color: #fff;
36
36
  font-weight: bold;
37
37
  line-height: 150px;
38
+ position: relative;
38
39
  }
39
40
  .item1 {
40
41
  grid-column-start: 1;
@@ -78,8 +79,8 @@
78
79
  height: 100%;
79
80
  }
80
81
  .health{
81
- margin: 20px;
82
- height: ~"calc(100vh - 60px)";
82
+ margin: 20px 20px 0 20px;
83
+ height: ~"calc(100vh - 130px)";
83
84
  }
84
85
  .all{
85
86
  height: 100%;
@@ -126,6 +127,11 @@
126
127
  bottom: 0;
127
128
  left: 0;
128
129
  }
130
+ .canvasClassOne{
131
+ position: absolute;
132
+ bottom: 0;
133
+ right: 0;
134
+ }
129
135
  .content{
130
136
  height: 654px;
131
137
  border-radius: 4px;
@@ -138,7 +144,7 @@
138
144
  }
139
145
  .projection{
140
146
  width: 80%;
141
- height: 88%;
147
+ height: ~"calc(100vh - 130px)";
142
148
  position: absolute;
143
149
  z-index: 1;
144
150
  // background: #fff;
@@ -147,6 +153,8 @@
147
153
  width: 100%;
148
154
  position: absolute;
149
155
  z-index: 1;
156
+ top: 0;
157
+ left: 80px;
150
158
  .selectSee{
151
159
  background: #00847F;
152
160
  border-radius: 0px 0px 2px 2px;
@@ -158,7 +166,7 @@ border-radius: 0px 0px 2px 2px;
158
166
  }
159
167
  div{
160
168
  font-size: 16px;
161
- margin: 15px;
169
+ margin: 0 15px;
162
170
  color: #FFFFFF;
163
171
  padding: 6px 13px;
164
172
  }
@@ -172,4 +180,30 @@ border-radius: 0px 0px 2px 2px;
172
180
  background: #333;
173
181
  }
174
182
  }
183
+ }
184
+ .customerTitle{
185
+ position: absolute;
186
+ top: 0;
187
+ left: 0px;
188
+ width: 80px;
189
+ line-height: 30px;
190
+ height: 30px;
191
+ background: rgba(219, 0, 17, 0.1);
192
+ border-radius: 4px 0px 2px 0px;
193
+ color: #DB0011;
194
+ font-size: 14px;
195
+ }
196
+ .tellerTitle{
197
+ position: absolute;
198
+ top: 0;
199
+ right: 0px;
200
+ width: 80px;
201
+ line-height: 30px;
202
+ height: 30px;
203
+ background: rgba(219, 0, 17, 0.1);
204
+ border-radius: 4px 0px 2px 0px;
205
+ transform: rotateY(
206
+ 180deg);
207
+ color: #DB0011;
208
+ font-size: 14px;
175
209
  }