react_hsbc_teller 1.7.4 → 1.7.7

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": "1.7.4",
3
+ "version": "1.7.7",
4
4
  "description": "React",
5
5
  "private": false,
6
6
  "main": "lib/hsbc.js",
Binary file
@@ -15,16 +15,16 @@ roomId: "656467744508298",
15
15
  // sessionId: '',
16
16
  isVideo: false,
17
17
  tellerAccount: '00000000',
18
- callbackUrl: 'http://182.92.184.31:8720/hsbc/callback',
19
- // callbackUrl: 'https://aag.wealth-platform.uat.ali.cloud.cn.hsbc/nosaml/api/appointment/wealth/api/v1/appointment/ali/createMeetingRoom',
18
+ // callbackUrl: 'http://182.92.184.31:8720/hsbc/callback',
19
+ callbackUrl: 'https://aag.wealth-platform.uat.ali.cloud.cn.hsbc/nosaml/api/appointment/wealth/api/v1/appointment/ali/createMeetingRoom',
20
20
  businessNumber: '',
21
21
  lang: 'zh',
22
- roomServerUrl: 'wss://mrtc.mpaas.cn-hangzhou.aliyuncs.com/ws',
23
- baseURL:'https://counter-web.leimondata.cn:18082/api/leimon-counter-api',
24
- resourcePath: 'https://counter-web.leimondata.cn:7199',
25
- // roomServerUrl: 'wss://app.uat.dsp.hsbcfts.com.cn/mpaas/mrtc/ws',
26
- // baseURL:'https://zuul.uat.dsp.hsbcfts.com.cn/wealth/zuul/api/leimon-counter-api',
27
- // resourcePath:'https://zuul.uat.dsp.hsbcfts.com.cn/wealth/js/',
22
+ // roomServerUrl: 'wss://mrtc.mpaas.cn-hangzhou.aliyuncs.com/ws',
23
+ // baseURL:'https://counter-web.leimondata.cn:18082/api/leimon-counter-api',
24
+ // resourcePath: 'https://counter-web.leimondata.cn:7199',
25
+ roomServerUrl: 'wss://app.uat.dsp.hsbcfts.com.cn/mpaas/mrtc/ws',
26
+ baseURL:'https://zuul.uat.dsp.hsbcfts.com.cn/wealth/zuul/api/leimon-counter-api',
27
+ resourcePath:'https://zuul.uat.dsp.hsbcfts.com.cn/wealth/js/',
28
28
  prohibitPrompt: '无客户',
29
29
  titleBackground: '#40a9ff',
30
30
  titleColor: '#faad14',
@@ -56,6 +56,9 @@ export default class foot extends Component {
56
56
  graffiti=()=>{
57
57
  this.props.graffiti()
58
58
  }
59
+ virtualization=()=>{
60
+ this.props.virtualization()
61
+ }
59
62
  render() {
60
63
  const {clickedOcr,clickedFacial,img,isWhiteboard,cameraImg,isTranscribing ,screenName,suspendName,customerList,menus,voiceName,beautyName} = this.props
61
64
  const content = (
@@ -81,8 +84,7 @@ export default class foot extends Component {
81
84
  </div>
82
85
  </div>
83
86
  </div>
84
- } */}
85
-
87
+ } */}
86
88
  {
87
89
  menus.map((item,index)=>{
88
90
  return <div key={index}className='footHover'>
@@ -95,6 +97,16 @@ export default class foot extends Component {
95
97
  </div>
96
98
  </div>
97
99
  </div>
100
+ }
101
+ {
102
+ item == 'BACK'&&<div className='footHover' onClick={this.virtualization.bind(this)}>
103
+ <div className="one">
104
+ <img className="imgClass" src={require("../../assets/img/beijing.png").default} alt="" />
105
+ <div className="text">
106
+ 背景虚化
107
+ </div>
108
+ </div>
109
+ </div>
98
110
  }
99
111
  {
100
112
  item == 'BOARD'&&<div className='footHover' onClick={this.switchExternal.bind(this)}>
@@ -45,8 +45,9 @@ let messageValue = ''
45
45
  let beautyNum = 0 // 0-关闭 1--弱 2--中 5---高
46
46
  let rateList = []
47
47
  let beautyDiv = {};
48
- let isBackgroundBlur = false
48
+ let isBackgroundBlur = true
49
49
  let isSuccuseHs = false
50
+ let isGraffiti = false
50
51
  let CanvasHome = styled.div`
51
52
  position: fixed;
52
53
  z-index: ${props=>props.zIndexNum};
@@ -94,27 +95,47 @@ function startBeauty(stream) {
94
95
  beautyDiv = meetingBeautifyStream(newStream, beautyNum);
95
96
  newStream = beautyDiv.stream;
96
97
  return newStream
98
+ }
99
+ async function startMix(stream,onState) {
100
+ var drawCanvas = document.getElementById('canvas');
101
+ await mixInit(drawCanvas);
102
+ mixStart(stream,onState);
103
+
104
+
97
105
  }
98
106
  async function startHs(stream) {
99
107
  // var canvas = document.getElementById('publish_video_canvas');
100
- var video_src = document.getElementById("publish_video1");
101
- var mode = 'blur';
102
- video_src.srcObject = stream;
108
+ // var video_src = document.getElementById("publish_video1");
109
+ // video_src.srcObject = stream;
103
110
 
104
111
  await hsInit();
105
- isSuccuseHs = true;
106
- hsStart(stream, mode);
112
+
113
+ hsStart(stream, 'none');
107
114
 
108
115
  }
109
116
 
110
117
  async function stopHs() {
111
- var video_src = document.getElementById("publish_video1");
112
- if(video_src) {
113
- console.log('video_src',video_src)
114
- video_src.srcObject = null;
115
- isSuccuseHs = false
116
- hsStop();
118
+ var stop_stream = true;//控制是否内部来进行关闭流
119
+ var stream = hsStop(stop_stream);
120
+ if (stream != null && stream != undefined) {
121
+ stream.getTracks().forEach((track) => {
122
+ track.stop();
123
+ });
124
+ stream = null;
125
+ }
126
+ isSuccuseHs = false
127
+
117
128
  }
129
+ async function mixStopClick() {
130
+ var stop_stream = true;//控制是否内部来进行关闭流
131
+ var stream = mixStop(stop_stream);
132
+ if (stream != null && stream != undefined) {
133
+ stream.getTracks().forEach((track) => {
134
+ track.stop();
135
+ });
136
+ stream = null;
137
+ }
138
+ isGraffiti = false
118
139
 
119
140
  }
120
141
  message.config({
@@ -134,8 +155,10 @@ class Video extends Component {
134
155
  isScreenSwitching: false,
135
156
  whiteboardWidth: '',
136
157
  whiteboardHeight: '',
158
+ widthVideo: '',
137
159
  whiteboardTop: '',
138
160
  whiteboardLeft: '',
161
+ leftVideo: '',
139
162
  laveRoomSharedScreen: false,
140
163
  isJoinRoom: false,
141
164
  sessionType: false,
@@ -152,6 +175,7 @@ class Video extends Component {
152
175
  linkData: '',
153
176
  roomCustomerList: [],
154
177
  facialImg: '',
178
+ isFaceImage: false,
155
179
  isModalVisibleFacial: false,
156
180
  isModalVisibleEnd: false,
157
181
  isModalVisible: false,
@@ -520,9 +544,9 @@ class Video extends Component {
520
544
  {
521
545
  tag: 'projectionWhiteboard',
522
546
  xPosition: 0,
523
- yPosition: 270,
524
- width: 1280,
525
- height: 720
547
+ yPosition: 175,
548
+ width: 960,
549
+ height: 540
526
550
  },
527
551
  // {
528
552
  // tag: 'VIDEO_SOURCE_SCREEN_ONE',
@@ -542,43 +566,43 @@ class Video extends Component {
542
566
  tag: 'tag1',
543
567
  xPosition: 0,
544
568
  yPosition: 0,
545
- width: 310,
546
- height: 180
569
+ width: 213,
570
+ height: 175
547
571
  },
548
572
  {
549
573
  tag: 'customer1',
550
- xPosition: 320,
574
+ xPosition: 213,
551
575
  yPosition: 0,
552
- width: 310,
553
- height: 180
576
+ width: 213,
577
+ height: 175
554
578
  },
555
579
  {
556
580
  tag: 'customer2',
557
- xPosition: 640,
581
+ xPosition: 426,
558
582
  yPosition: 0,
559
- width: 310,
560
- height: 180
583
+ width: 213,
584
+ height: 175
561
585
  },
562
586
  {
563
587
  tag: 'customer3',
564
- xPosition: 960,
588
+ xPosition: 639,
565
589
  yPosition: 0,
566
- width: 310,
567
- height: 180
590
+ width: 213,
591
+ height: 175
568
592
  },
569
593
  {
570
594
  tag: 'customer4',
571
- xPosition: 1280,
595
+ xPosition: 852,
572
596
  yPosition: 0,
573
- width: 310,
574
- height: 180
597
+ width: 213,
598
+ height: 175
575
599
  },
576
600
  {
577
601
  tag: 'customer5',
578
- xPosition: 1600,
602
+ xPosition: 1065,
579
603
  yPosition: 0,
580
- width: 310,
581
- height: 180
604
+ width: 213,
605
+ height: 175
582
606
  },
583
607
  // {
584
608
  // tag: 'customer6',
@@ -632,17 +656,25 @@ class Video extends Component {
632
656
  width: item.width,
633
657
  height: item.height
634
658
  })
635
- }) : list.push({
659
+ }) :
660
+ list.push({
636
661
  tag: 'VIDEO_SOURCE_SCREEN',
637
- xPosition: 1290,
638
- yPosition: 640,
639
- width: 630,
640
- height: 350
662
+ xPosition: 960,
663
+ yPosition: 535,
664
+ width: 320,
665
+ height: 180
641
666
  })
667
+ // list.push({
668
+ // tag: 'VIDEO_SOURCE_SCREEN_19_9',
669
+ // xPosition: 960,
670
+ // yPosition: 573,
671
+ // width: 304,
672
+ // height: 144
673
+ // })
642
674
  const filePath = 'recordId_' + new Date().valueOf();
643
675
  const recordParam = {};
644
- recordParam.width = 1920;
645
- recordParam.height = 1080;
676
+ recordParam.width = 1280;
677
+ recordParam.height = 720;
646
678
  recordParam.recordTotalStream = 0;
647
679
  recordParam.startTimeout = 10;
648
680
  recordParam.splitType = 0;
@@ -2189,42 +2221,100 @@ class Video extends Component {
2189
2221
  this.test_controller.OnSendTextMsgFailed =(msgId, code, msg)=>{
2190
2222
  console.log('发送失败',msgId,code, msg)
2191
2223
  }
2192
- // this.test_controller.StreamFilterHandler = async function (publish_tag, stream, stream_type, publish_device, media_type) {
2193
- // console.log(`stream processed by client, publish_device=${publish_device}, media_type=${media_type}, publish_tag=${publish_tag},stream_type=${stream_type}`);
2194
- // if (stream_type == "subscribe") {
2195
- // return stream
2196
- // }
2197
- // if (media_type == 2 || media_type == 4) {
2198
- // return stream
2199
- // }
2200
- // if(publish_tag == 'tag1') {
2201
- // let newStream = stream;
2202
- // let beauty_strength = beautyNum;
2203
- // if (beauty_strength != 0 && stream.getVideoTracks()[0]) {
2204
- // newStream = new MediaStream([startBeauty(stream).getVideoTracks()[0]]);
2205
- // // 清理原始流
2206
- // newStream.oninactive = function () {
2207
- // clearOriginStream(stream);
2208
- // };
2209
- // newStream.getVideoTracks()[0].onended = function () {
2210
- // clearOriginStream(stream);
2211
- // };
2212
- // function clearOriginStream(stream) {
2213
- // stream.getTracks().forEach((track) => {
2214
- // track.stop();
2215
- // });
2216
- // stream = null;
2217
- // }
2218
- // };
2219
- // if (stream.getAudioTracks()[0] && newStream.addTrack) {
2220
- // newStream.addTrack(stream.getAudioTracks()[0])
2221
- // }
2222
- // return newStream
2223
- // } else {
2224
- // return stream
2225
- // }
2224
+ this.test_controller.StreamFilterHandler = async (publish_tag, stream, stream_type, publish_device, media_type) =>{
2225
+ console.log(`stream processed by client, publish_device=${publish_device}, media_type=${media_type}, publish_tag=${publish_tag},stream_type=${stream_type}`);
2226
+ if (stream_type == "subscribe") {
2227
+ return stream
2228
+ }
2229
+ if (media_type == 2 || media_type == 4) {
2230
+ return stream
2231
+ }
2232
+ // if (publish_device != 2) {
2233
+ // return stream
2234
+ // }
2235
+ if(publish_tag == 'tag1') {
2236
+ console.log('tag1',stream)
2237
+ let newStream = stream;
2238
+ let beauty_strength = beautyNum;
2239
+ if (beauty_strength != 0 && stream.getVideoTracks()[0]) {
2240
+ newStream = new MediaStream([startBeauty(stream).getVideoTracks()[0]]);
2241
+ // 清理原始流
2242
+ newStream.oninactive = function () {
2243
+ clearOriginStream(stream);
2244
+ };
2245
+ newStream.getVideoTracks()[0].onended = function () {
2246
+ clearOriginStream(stream);
2247
+ };
2248
+ function clearOriginStream(stream) {
2249
+ stream.getTracks().forEach((track) => {
2250
+ track.stop();
2251
+ });
2252
+ stream = null;
2253
+ }
2254
+ };
2255
+ if (stream.getVideoTracks()[0]) {
2256
+ await startHs(newStream);
2257
+ newStream = hsCaptureStream();
2258
+ // 清理原始流
2259
+ newStream.oninactive = function () {
2260
+ clearOriginStream(stream);
2261
+ };
2262
+ newStream.getVideoTracks()[0].onended = function () {
2263
+ clearOriginStream(stream);
2264
+ };
2265
+ function clearOriginStream(stream) {
2266
+ stream.getTracks().forEach((track) => {
2267
+ track.stop();
2268
+ });
2269
+ stream = null;
2270
+ }
2271
+ }
2272
+ if (stream.getAudioTracks()[0] && newStream.addTrack) {
2273
+ newStream.addTrack(stream.getAudioTracks()[0])
2274
+ }
2275
+ return newStream
2276
+ }
2277
+
2278
+ if(publish_tag == 'projectionWhiteboard' && publish_device == 2) {
2279
+ // this.graffiti()
2280
+ console.log('projectionWhiteboard',stream)
2281
+ let newStream1 = stream;
2282
+ if (stream.getVideoTracks()[0]) {
2283
+ if(this.state.operateShow) {
2284
+ await startMix(newStream1,'mix');
2285
+
2286
+ isGraffiti = true
2287
+ this.setState({
2288
+ zIndexNum: 999
2289
+ })
2290
+ const canvas = document.getElementById('canvas');
2291
+ canvas.width = this.state.widthVideo
2292
+ } else {
2293
+ await startMix(newStream1,'none');
2294
+ }
2295
+
2296
+ newStream1 = mixCaptureStream();
2297
+ console.log('projectionWhiteboard1',newStream1)
2298
+ // 清理原始流
2299
+ newStream1.oninactive = function () {
2300
+ clearOriginStream(stream);
2301
+ };
2302
+ newStream1.getVideoTracks()[0].onended = function () {
2303
+ clearOriginStream(stream);
2304
+ };
2305
+ function clearOriginStream(stream) {
2306
+ stream.getTracks().forEach((track) => {
2307
+ track.stop();
2308
+ });
2309
+ stream = null;
2310
+ }
2311
+ }
2312
+ return newStream1
2313
+ } else {
2314
+ return stream
2315
+ }
2226
2316
 
2227
- // }
2317
+ }
2228
2318
  // 发布媒体流成功
2229
2319
  this.test_controller.OnPublishSucc = (sid) => {
2230
2320
  console.log('发布媒体流成功', sid)
@@ -2249,7 +2339,8 @@ class Video extends Component {
2249
2339
  if(box){ //此处在加一层判断,更加严密,如果box存在的情况下获取
2250
2340
  this.setState({
2251
2341
  whiteboardTop: box.getBoundingClientRect().top * 1.08 - 40,
2252
- whiteboardLeft: box.getBoundingClientRect().left
2342
+ whiteboardLeft: box.getBoundingClientRect().left,
2343
+ leftVideo: (box.offsetWidth - this.state.widthVideo)/2 + box.getBoundingClientRect().left
2253
2344
  })
2254
2345
  console.log('whiteboardDIV',this.state.whiteboardTop,this.state.whiteboardLeft)
2255
2346
  }
@@ -3044,6 +3135,9 @@ class Video extends Component {
3044
3135
  if(isSuccuseHs) {
3045
3136
  stopHs();
3046
3137
  }
3138
+ if(isGraffiti) {
3139
+ mixStopClick()
3140
+ }
3047
3141
 
3048
3142
  console.log('退出房间回调', leaveType);
3049
3143
  };
@@ -3631,11 +3725,12 @@ userType:'1'
3631
3725
  this.props.resourcePath + "/html2canvas.js",
3632
3726
  this.props.resourcePath + "/dom-to-image.js",
3633
3727
 
3634
- // this.props.resourcePath + "/hs/hs_human_segmentation_wrapper.js",
3635
- // this.props.resourcePath + "/hs/hs_human_segmentation.js",
3636
- // this.props.resourcePath + "/hs/hs_human_segmentation.wasm",
3728
+ this.props.resourcePath + "/hs/hs_human_segmentation_wrapper.js",
3729
+ this.props.resourcePath + "/hs/hs_human_segmentation.js",
3730
+ this.props.resourcePath + "/hs/hs_human_segmentation.wasm",
3637
3731
 
3638
-
3732
+ this.props.resourcePath + "/mix/mix_frame.js",
3733
+ this.props.resourcePath + "/mix/pageBoard.js"
3639
3734
 
3640
3735
  ]
3641
3736
  const that = this
@@ -4028,7 +4123,8 @@ userType:'1'
4028
4123
  idCardName: '',
4029
4124
  titleModal: '人脸识别',
4030
4125
  // clickedFacial: true,
4031
- facialImg: this.test_controller.TakePicture(1, undefined, undefined, this.state.customOcrSid, 'png')
4126
+ facialImg: ocrImage,
4127
+ isFaceImage: false
4032
4128
  })
4033
4129
  }
4034
4130
 
@@ -4225,24 +4321,27 @@ userType:'1'
4225
4321
  this.setState({
4226
4322
  clickedFacial: false,
4227
4323
  clickedOcr: false,
4324
+ isFaceImage: false,
4228
4325
  facialImg: ocrImage,
4229
4326
  },()=>{
4230
4327
  this.setState({
4231
- isModalVisibleFacial: true,
4232
- })
4328
+ isModalVisibleFacial: true,
4233
4329
  })
4330
+ })
4234
4331
  }
4235
4332
  }
4236
4333
  sgsinImage=()=>{
4237
4334
  this.setState({
4238
- facialImg: this.test_controller.TakePicture(1, undefined, undefined, this.state.customOcrSid, 'png')
4335
+ facialImg: this.test_controller.TakePicture(1, undefined, undefined, this.state.customOcrSid, 'png'),
4336
+ isFaceImage: true
4239
4337
  })
4240
4338
  }
4241
4339
  handleChangeOcr =(val)=> {
4242
4340
  console.log(val)
4243
4341
  this.setState({
4244
4342
  defaultValue: 1,
4245
- facialImg: this.test_controller.TakePicture(1, undefined, undefined, this.state.customOcrSid, 'png')
4343
+ facialImg: this.test_controller.TakePicture(1, undefined, undefined, this.state.customOcrSid, 'png'),
4344
+ isFaceImage: true
4246
4345
  })
4247
4346
  }
4248
4347
  componentWillReceiveProps(props) {
@@ -4508,6 +4607,14 @@ userType:'1'
4508
4607
 
4509
4608
  videoMedia.addEventListener('play', (event) =>{
4510
4609
  var $this = this; //cache
4610
+ if($this.state.operateShow) {
4611
+ isGraffiti = false
4612
+ this.setState({
4613
+ zIndexNum: 999
4614
+ })
4615
+ const canvas = document.getElementById('canvas');
4616
+ canvas.width = this.state.whiteboardWidth
4617
+ }
4511
4618
  console.log('addEventListener',!$this.paused,!$this.ended,x, y, width, height)
4512
4619
  loop()
4513
4620
  function loop() {
@@ -4568,6 +4675,7 @@ userType:'1'
4568
4675
  })
4569
4676
 
4570
4677
  streamShare = stream
4678
+
4571
4679
  stream.getVideoTracks()[0].onended = async ()=>{
4572
4680
  //单击停止共享按钮后,触发这个事件
4573
4681
  streamShare = ''
@@ -4651,13 +4759,30 @@ userType:'1'
4651
4759
  img.src = base64;
4652
4760
  document.body.appendChild(img);
4653
4761
 
4762
+ }
4763
+ graffitiClick=async()=>{
4764
+ if(!isGraffiti) {
4765
+ if (this.state.tabTitles.find(el=>el.value == 'RMScreen')) {
4766
+ // await startMix(document.getElementById('video20').srcObject);
4767
+ // document.getElementById('video20').srcObject = mixCaptureStream();
4768
+
4769
+ mixSetMode('mix')
4770
+ isGraffiti = true
4771
+ console.log('isGraffiti',isGraffiti)
4772
+ const canvas = document.getElementById('canvas');
4773
+ canvas.width = this.state.widthVideo
4774
+ }
4775
+ }
4776
+
4654
4777
  }
4655
4778
  graffiti=()=>{
4779
+
4656
4780
  if(!this.state.operateShow) {
4657
4781
  this.setState({
4658
4782
  zIndexNum: 999
4659
4783
  })
4660
4784
  this.change(true)
4785
+
4661
4786
  }
4662
4787
 
4663
4788
  }
@@ -4666,6 +4791,13 @@ userType:'1'
4666
4791
  zIndexNum: -1
4667
4792
  })
4668
4793
  this.change(false)
4794
+ if(isGraffiti) {
4795
+ isGraffiti = false
4796
+ mixSetMode('none')
4797
+ console.log('isGraffiti',isGraffiti)
4798
+ // var stream = mixStop(false);
4799
+ // document.getElementById('video20').srcObject = stream
4800
+ }
4669
4801
  }
4670
4802
  change(val) {
4671
4803
  this.setState({ operateShow: val })
@@ -4677,6 +4809,7 @@ userType:'1'
4677
4809
  setTimeout(() => {
4678
4810
  this.openCanvas(canvas)
4679
4811
  }, 0);
4812
+ this.graffitiClick()
4680
4813
  } else {
4681
4814
  // this.downCanvas()
4682
4815
  this.closeCanvas();
@@ -4756,8 +4889,10 @@ userType:'1'
4756
4889
  if(box){ //此处在加一层判断,更加严密,如果box存在的情况下获取
4757
4890
  this.state.whiteboardWidth = box.offsetWidth,
4758
4891
  this.state.whiteboardHeight = box.offsetHeight * 0.92,
4892
+ this.state.widthVideo = this.state.whiteboardHeight * 1280 / 720
4759
4893
  this.state.whiteboardTop = box.getBoundingClientRect().top * 1.08 - 40
4760
4894
  this.state.whiteboardLeft = box.getBoundingClientRect().left
4895
+ this.state.leftVideo = (box.offsetWidth - this.state.widthVideo)/2 + box.getBoundingClientRect().left
4761
4896
  console.log('whiteboardDIV', this.state.whiteboardHeight,this.state.whiteboardWidth,this.state.whiteboardTop,this.state.whiteboardLeft)
4762
4897
  }
4763
4898
  }
@@ -4893,6 +5028,20 @@ userType:'1'
4893
5028
  });
4894
5029
  },100)
4895
5030
 
5031
+ }
5032
+ virtualizationClick=async()=>{
5033
+ if(!isSuccuseHs) {
5034
+
5035
+ hsSetMode('blur')
5036
+ isSuccuseHs = true
5037
+ } else {
5038
+ hsSetMode('none')
5039
+ isSuccuseHs = false
5040
+ }
5041
+ }
5042
+ virtualization=()=>{
5043
+ this.virtualizationClick()
5044
+
4896
5045
  }
4897
5046
  handleChangeIdCardName = (event) => {
4898
5047
  this.setState({idCardName: event.target.value});
@@ -5047,7 +5196,7 @@ userType:'1'
5047
5196
  {tabTitleList}
5048
5197
  {/* <img style={sectionStyle} src={require("../../assets/img/placeholder_bg.png").default} alt="" /> */}
5049
5198
  <div id="whiteboardDIV" style={{height: 'calc(100% - 33px)'}}>
5050
- <CanvasHome zIndexNum={this.state.zIndexNum} style={{width: this.state.whiteboardWidth + 'Px',height: this.state.whiteboardHeight + 'Px',top: this.state.whiteboardTop + 'Px',left:this.state.whiteboardLeft + 'Px'}}>
5199
+ <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'}}>
5051
5200
  {this.state.operateShow &&
5052
5201
  <OpreateDiv id="operate">
5053
5202
  <span style={{color: this.state.selectSpan == 'pen' ? '#1890ff' : '#333'}} onClick={() => this.setTool('pen')}>铅笔</span>
@@ -5061,11 +5210,12 @@ userType:'1'
5061
5210
  <canvas id="canvas" className="canvas"></canvas>
5062
5211
  </CanvasHome>
5063
5212
  <div className="videoDiv" style={{ display: (this.state.isSelect == 'RMScreen' || this.state.isSelect == 'staffScreen') ? '' : 'none', }}>
5064
- <div className="videoDiv">
5213
+ <div className="videoDiv" style={{'text-align': 'center'}}>
5065
5214
  <video
5066
5215
  id="video20"
5067
5216
  autoPlay
5068
5217
  muted={true}
5218
+ style={{ height: this.state.whiteboardHeight + 'px',width: this.state.widthVideo + 'px'}}
5069
5219
  className="videoTab"
5070
5220
  disablePictureInPicture
5071
5221
  />
@@ -5552,6 +5702,7 @@ userType:'1'
5552
5702
  inspection={this.inspection}
5553
5703
  beautyClick={this.beautyClick}
5554
5704
  graffiti={this.graffiti}
5705
+ virtualization={this.virtualization}
5555
5706
  ></Foot>
5556
5707
  <Modal cancelText="取消" okText="确定" visible={this.state.isModalVisible} onOk={this.handleOk}
5557
5708
  onCancel={this.handleCancel}>
@@ -5574,7 +5725,13 @@ userType:'1'
5574
5725
  !this.state.idCardName && <div key='facial'>
5575
5726
  <Button className="modelButtonCancel" onClick={this.handleCancelFacial}>取消</Button>
5576
5727
  <Button className="modelButtonCancel" onClick={this.sgsinImage}>截图</Button>
5577
- <Button className="modelButtonOk" type="primary" danger onClick={this.handleOkFacial}>确定</Button>
5728
+ {
5729
+ this.state.isFaceImage && <Button className="modelButtonOk" type="primary" danger onClick={this.handleOkFacial}>确定</Button>
5730
+ }
5731
+ {
5732
+ !this.state.isFaceImage && <Button className="modelButtonNo" type="primary" danger>确定</Button>
5733
+ }
5734
+
5578
5735
  </div>,
5579
5736
  this.state.idCardName && <div key='facial'>
5580
5737
  <Button className="modelButtonFaceOk" danger onClick={(e)=>this.confirmCallback('face')}>完成并发起人脸识别</Button>
@@ -5718,7 +5875,7 @@ sessionId: "",
5718
5875
  microphoneSize: 25,
5719
5876
  fontSize: '14',
5720
5877
  fontFamily: 'auto',
5721
- menus: ['BOARD','SHARE', 'FRIES', 'OCR', 'INVITE', 'PIP', 'BEAUTY','GRAFFITI'],
5878
+ menus: ['BOARD','SHARE', 'FRIES', 'OCR', 'INVITE', 'PIP', 'BEAUTY','GRAFFITI','BACK'],
5722
5879
  customLeaveRoom: '客户离开房间',
5723
5880
  meetingInfo: {
5724
5881
  title: '--',
@@ -378,6 +378,15 @@
378
378
  background: #DB0011!important;
379
379
  border-spacing: 20px!important;
380
380
  }
381
+ .modelButtonNo{
382
+ width: 100px!important;
383
+ height: 40px!important;
384
+ font-size: 16px!important;
385
+ color: #5C5C5C!important;
386
+ border: 1px #5C5C5C solid!important;
387
+ background: #d9d9d9!important;
388
+ border-spacing: 20px!important;
389
+ }
381
390
  .modelButtonFaceOk{
382
391
  width: 170px!important;
383
392
  height: 40px!important;